题目:
给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例 1:
输入:s = "Let's take LeetCode contest"
输出:"s'teL ekat edoCteeL tsetnoc"
解题思路:
我们发现每个单词都是相隔一个空格,假如我们设定两个指针,left和right,那么遇到空格时,交换left和right之间的所有字母,并且将left=right+1直到right到边界
void swap(char *s,int left,int right)//交换字符
{
while(left<right)
{
char tmp=s[left];
s[left]=s[right];
s[right]=tmp;
left++;
right--;
}
}
char * reverseWords(char * s){
int ch=strlen(s);
int left=0,right=0;
while(right<=ch)
{
if(s[right]==' '||right==ch)//判断空格和边界
{
swap(s,left,right-1);
left=right+1;
}
right++;
}
return s;
}