立志重刷代码随想录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;
}

代码随想录更新 文章被收录于专栏

冲冲冲冲冲冲!

全部评论

相关推荐

1234567800:歌尔今年给211开14-15k吗,我本地人连面试都不给😂
点赞 评论 收藏
分享
10-12 22:59
门头沟学院 C++
发意向之后,hr问能不能提前实习,我其实蛮想去的,但又怕耽误写论文,导师也不愿意放,但我可以偷偷跑。提前实习如果表现不好会被卡试用期转正吗,hr说可以提前熟悉业务,会更有优势
伟大的麻辣烫:过来人告诉你,别去。就算去,签了三方再说(虽然没什么意义,但是总比没签有保障)。最后,好好评估下能不能毕业,一般盲审是在2-3月份,也没多长时间了,不要想着实习可以一遍这论文一遍实习,绝无可能(提前实习工资百分之80,一天一千多不会让你玩的,可不是那种400一天的实习生)
点赞 评论 收藏
分享
1 1 评论
分享
牛客网
牛客企业服务