首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2013-10-19 
[google面试CTCI] 1-2 逆转c风格字符串【字符串与数组】Q:Write code to reverse a C-Style String (C-Strin

[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

热点排行