网站建设提成,福建住房和建设网站密码忘记,啊里网站制作,建设网站模式文章目录 看下去#xff0c;你一定可以理解此题#xff0c;写的简单易懂力扣题目解题思路函数构成1.反转函数2.消除掉多余空格函数 整体函数 看下去#xff0c;你一定可以理解此题#xff0c;写的简单易懂
力扣题目
给你一个字符串 s #xff0c;请你反转字符串中 单词 … 文章目录 看下去你一定可以理解此题写的简单易懂力扣题目解题思路函数构成1.反转函数2.消除掉多余空格函数 整体函数 看下去你一定可以理解此题写的简单易懂
力扣题目
给你一个字符串 s 请你反转字符串中 单词 的顺序。
单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。
返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。
注意输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中单词间应当仅用单个空格分隔且不包含任何额外的空格。
示例 1
输入s “the sky is blue” 输出“blue is sky the” 示例 2
输入s hello world 输出“world hello” 解释反转后的字符串中不能存在前导空格和尾随空格。 示例 3
输入s “a good example” 输出“example good a” 解释如果两个单词间有多余的空格反转后的字符串需要将单词间的空格减少到仅有一个。
解题思路
1.通过removeElement函数来去掉字符串中多余的0 2.通过revise函数先反转整个字符串 3.在反转每一个单词就达到了题目中的要求。 反转每一个单词过程可以参考我的此篇文章-力扣-557. 反转字符串中的单词 III
函数构成
1.反转函数
void revise(char* start, char* end)
{char temp;while (start end){temp *end;*end *start;*start temp;start;end--;}
}只需要输入反转的起始地址和终止地址即可完成反转
2.消除掉多余空格函数
int removeElement(char* str, int len, int val)
{int slow 0; //慢指针int fast 0; //快指针for (fast 0; fast len; fast){if (val ! str[fast])/*如果不是空格就赋值*/{if (slow ! 0)/*确保字符串的最前边没有空格*/{str[slow] ;slow;}}while ((fast len) str[fast] ! val)/*快指针遍历一个完整的单词赋值给慢指针*/{str[slow] str[fast];slow;fast;}}str[slow] \0;return slow;
}整体函数
void revise(char* start, char* end)
{char temp;while (start end){temp *end;*end *start;*start temp;start;end--;}
}
int removeElement(char* str, int len, int val)
{int slow 0; //慢指针int fast 0; //快指针for (fast 0; fast len; fast){if (val ! str[fast])/*如果不是空格就赋值*/{if (slow ! 0)/*确保字符串的最前边没有空格*/{str[slow] ;slow;}}while ((fast len) str[fast] ! val)/*快指针遍历一个完整的单词赋值给慢指针*/{str[slow] str[fast];slow;fast;}}str[slow] \0;return slow;
}char* reverseWords(char* s)
{char* start NULL;char* end NULL;int len strlen(s);int i 0;/*取得移除多余0后字符串的长度*/len removeElement(s, len, );/*反转全部字符串*/revise(s[0], s[len - 1]);/*反转每一个单词*/start s;/*字符串首地址赋值*/for (i 0; i len; i){if (s[i] ){end s[i];/*记录空格的位置*/revise(start, end - 1);start end 1;/*记录空格后字符的位置*/}else if (s[i 1] \0)/*最后一个单词特殊处理*/{end s[i];revise(start, end);start NULL;}}return s;
}如果有需要可以跳转leetcode直接看我提交的解题151. 反转字符串中的单词