给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例 1:
输入: "Let's take LeetCode contest" 输出: "s'teL ekat edoCteeL tsetnoc"
注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。
思路:
我运用了string 中的搜索操作(各种find)寻找“ ”,然后reverse翻转:::
我的代码::
1 class Solution { 2 public: 3 string reverseWords(string s) { 4 5 int pos = 0; 6 int temp; 7 while((temp = s.find_first_of(" ",pos) )!= string::npos ) 8 { 9 reverse(s.begin()+pos,s.begin()+temp); 10 pos = temp+1; 11 } 12 reverse(s.begin()+pos,s.end()); 13 return s; 14 } 15 };
执行用时 :
32 ms, 在Reverse Words in a String III的C++提交中击败了25.80% 的用户
内存消耗 :
11.7 MB, 在Reverse Words in a String III的C++提交中击败了2.02% 的用户