立志重刷代码随想录60天冲冲冲!!——第九天
151. 反转字符串中的单词
思路:先去掉多余空格,在全部反转,最后每个单词反转。
去掉多余空格对流程需要多看看
class Solution { public: void EraseExtraSpace(string& s) { int slow = 0; for (int fast = 0; fast < s.size(); fast++) { if (s[fast] != ' ') { // 每个单词之间加空格 if (slow != 0) s[slow++] = ' '; while (fast < s.size() && s[fast] != ' ') { s[slow++] = s[fast++]; } } } s.resize(slow); // 去掉多余空格 } void Reverse(string& s, int start, int end) { for (int left = start, right = end; left < right; left++, right--) { swap(s[left], s[right]); } } string reverseWords(string s) { EraseExtraSpace(s); Reverse(s, 0, s.size() - 1); int start = 0; for (int i = 0; i < s.size(); i++) { if (s[i] == ' ') { Reverse(s, start, i - 1); start = i + 1; } else if (i == s.size() - 1) { Reverse(s, start, i); } } return s; } };
55. 右旋字符串(第八期模拟笔试)
(卡码网)
#include<iostream> using namespace std; #include<string> void Reverse(string& str, int start, int end) { for (int i = start, j = end; i < j; i++, j--) { swap(str[i], str[j]); } } int main(){ int n; string str; cin >> n; cin >> str; Reverse(str, 0, str.size() - 1); Reverse(str, 0, n-1); Reverse(str, n, str.size() - 1); cout << str; }
28. 实现 strStr()
KMP致命缺点!!每天加班太晚了,周末补更!!
459.重复的子字符串
周末补更!!
代码随想录更新 文章被收录于专栏
冲冲冲冲冲冲!