学校网站建设项目需求报告,个人网站如何建设,网站关键词在哪里做,开放平台是什么意思4、反转字符串里的单词
给定一个字符串#xff0c;逐个反转字符串中的单词
示例1#xff1a;
输入: the sky is blue,
输出: blue is sky the.说明#xff1a;
无空格字符构成一个单词。
输入字符串可以在前面或者后面包含多余的空格#xff0…4、反转字符串里的单词
给定一个字符串逐个反转字符串中的单词
示例1
输入: the sky is blue,
输出: blue is sky the.说明
无空格字符构成一个单词。
输入字符串可以在前面或者后面包含多余的空格但是反转后的字符不能包括。
如果两个单词间有多余的空格将反转后单词间的空格减少到只含一个。进阶
请选用C语言的用户尝试使用 O(1) 空间复杂度的原地解法。Solution
class Solution {
public:void reverseWords(string s) {string res;string str;int isWord0;int wordSize0;for(int is.size()-1;i0;i--){if(s[i] ){if(isWord){isWord0;if(res.size()0){res ;}strs.substr(i1,wordSize);resstr;wordSize0;}elsecontinue;}else{if(isWord){wordSize;if(i0){if(res.size()0)res ;strs.substr(0,wordSize);resstr;}}else{isWord1;wordSize;if(i0){if(res.size()0)res ;strs.substr(0,wordSize);resstr;}}}}sres;}
};思路
主要的思路就是用isWord标记当前字符是否是一个单词。然后取出该单词放到结果中值得注意的是当字符串为只有一个字符的字符串时的情况。代码看上去非常臃肿但是速度上还是令人满吃惊的超过了99.98%的提交。