代码随想录算法训练营Day.8 字符串 part01 | 反转字符串 反转字符串 II 替换数字

72 阅读1分钟

继续肝

344.反转字符串

简直不要太简单,熟悉一下Cpp的字符串:

class Solution 
{
public:
    void reverseString(vector<char>& s) 
    {
        int left{0};
        int right = s.size() -1;
        char temp;
        while(left < right){
            temp = s[left];
            s[left] = s[right];
            s[right] = temp;
            left ++;
            right --;
        }
    }
};

当然,有时候偷懒可以用std

class Solution 
{
public:
    void reverseString(vector<char>& s) 
    {
        std::reverse(s.begin(), s.end());
    }
};

541.反转字符串 II

直接用库函数reverse,当然双指针也可以实现:

class Solution {
public:
    string reverseStr(string s, int k) {
       string res{""};
       string temp{""};
       int start{0};
       while(s.size() - start > k*2)
       {
            temp = s.substr(start, k);
            reverse(temp.begin(), temp.end());
            res += temp;
            res += s.substr(start + k, k);
            start  += k*2;
       }
       if(s.size() - start > k)
       {
            temp = s.substr(start, k);
            reverse(temp.begin(), temp.end());
            res += temp;
            res += s.substr(start + k, s.size() - start - k);
       }
       else
       {
            temp = s.substr(start, s.size());
            reverse(temp.begin(), temp.end());
            res += temp;
       }
       return res; 
    }
};

卡玛网 54.替换数字

简单熟悉一下ACM模式呗,也就是IO

#include<iostream>

int main()
{
    std::string s;
    std::string res{""};
    std::cin >> s;
    for(char c : s)
    {
        if(c >= '0' && c <= '9') res += "number";
        else res += c;
    }
    std::cout << res;
}