今天进入了字符串模块!
Leetcode344 反转字符串
题目链接:反转字符串
文章链接:代码随想录-反转字符串
代码:
class Solution {
public:
void reverseString(vector<char>& s) {
int len = s.size();
for(int i = 0, j = len - 1; i < j ;i++, j-- )
{
char temp = s[j];
s[j] = s[i];
s[i] = temp;
}
}
};
思路分析
就是单纯的revers()库函数的实现,如代码,设置i、j,分别指向两端,进行交换。
Leetcode541 反转字符串||
题目链接:反转字符串||
文章链接:代码随想录-反转字符串||
代码:
class Solution {
public:
string reverseStr(string s, int k) {
int len = s.size();
int left = 0;
for(; left < len; left += 2 * k) // 对for循环做手脚!!
{
if(len - left <= k)
reverse(s.begin() + left, s.end());
else
reverse(s.begin() + left , s.begin() + left + k );
}
return s;
}
};
思路分析
当需要固定规律处理一段一段的数据时,可以在for循环中做一些技巧性手段,像“left += 2 * k”。要当做整体部分去做,才能简单处理。
卡码网54 替换数字
题目链接:替换数字
文章链接:代码随想录-替换数字
代码:
#include<iostream>
using namespace std;
#include<cstring>
int main()
{
string s, res;
cin>>s;
for(int i = 0; i< s.size(); i++)
{
if(s[i] >= 48 && s[i] <= 57 )
res += "number";
else
res += s[i];
}
cout<<res<<endl;
return 0;
}
思路分析
不说啥了,就是最简单的模拟。