当前位置:编程学习 > 网站相关 >>

[google面试CTCI] 1-2 逆转c风格字符串

【字符串与数组】
 
Q:Write code to reverse a C-Style String (C-String means that “abcd” is represented as
five characters, including the null character )
 
题目:将一个c风格字符串逆转(c风格字符串即以空字符结尾的字符串)。
 
解答:
 
方法一:从字符串的两端往中间走,不断交换两端的字符即可,时间复杂度为O(n)。
 
void reverse(char* str){
int len=strlen(str);
int i;
char chTmp;
for(i=0;i<len/2;i++){
chTmp=str[i];//交换字符串
str[i]=str[len-i-1];
str[len-i-1]=chTmp;
}
}
方法二:方法一的一种更文艺写法,也是更切合题意的一种写法(因为题中提到c风格字符串),从字符串的两端往中间走,不断交换两端的字符即可。
 
void reverse(char * str){
char* end=str;
char temp;
if(str){
while(*end){
++end;
}
}
--end;
while(str<end){
temp=*str;
*str++=*end;
*end--=temp;
}
}
作者:Viidiot  微信公众号:linux-code
补充:综合编程 , 其他综合 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,