立志重刷代码随想录60天冲冲冲!!——第八天
344. 反转字符串
没啥好说的,双指针秒
class Solution { public: void reverseString(vector<char>& s) { for (int left = 0, right = s.size() - 1; left < right; left++, right--) { swap(s[left], s[right]); } } };
541. 反转字符串 II
库函数reverse()需要使用迭代器
class Solution { public: string reverseStr(string s, int k) { int n = s.size(); for (int i = 0; i < s.size(); i += 2*k) { reverse(s.begin() + i, s.begin() + min(i + k, n));//使用迭代器!! } return s; } };
54. 替换数字(第八期模拟笔试)
卡码网
双指针解法,尾插法
ACM需要加强
#include <iostream> using namespace std; int main() { string s; while (cin >> s) { // 统计数字个数 int count = 0; for (int i = 0; i < s.size(); i++) { if (s[i] >= '0' && s[i] <= '9') { count++; } } int sOldLen = s.size() - 1; s.resize(s.size() + 5 * count); int sNewLen = s.size() - 1; while (sOldLen >= 0) { if (s[sOldLen] >= '0' && s[sOldLen] <= '9') { s[sNewLen--] = 'r'; s[sNewLen--] = 'e'; s[sNewLen--] = 'b'; s[sNewLen--] = 'm'; s[sNewLen--] = 'u'; s[sNewLen--] = 'n'; } else { s[sNewLen--] = s[sOldLen]; } sOldLen--; } } cout << s << endl; }
代码随想录更新 文章被收录于专栏
冲冲冲冲冲冲!