反转字符串
原题链接:反转字符串
思路:使用双指针,一个在左端,一个在末端,依次交换,直到相遇。
class Solution {
public:
void reverseString(vector<char>& s) {
//reverse(s.begin(),s.end());
for(int left=0,right=s.size()-1;left<right;left++,right--){
char t = s[left];
s[left] = s[right];
s[right] = t;
}
}
};
反转字符串 ll
原题链接:反转字符串 II
思路:题目意思,每隔k个字符,就反转一次,我们利用一个变量,来判断是否需要反转。使用两个指针,来维护需要判断的位置。
class Solution {
public:
string reverseStr(string s, int k) {
bool sign = true;
int begin = 0;
int end = 0;
while(begin < s.size()){
end +=k;
if(end >s.size()) end = s.size();
if(sign){
reverse(s.begin()+begin,s.begin()+end);
sign = false;
}else{
sign = true;
}
begin = end;
}
return s;
}
};
替换数字
原题链接:替换数字
思路:遍历该字符串,判断是否为数字,以此添加不同的字符串。
#include<iostream>
using namespace std;
string replace_num(string s){
string rs;
string t = "number";
for(auto a : s){
if(a>='0'&&a<="9"){
rs+=t;
}else{
rs+=a;
}
}
return rs;
}
int main(void){
string s;
cin>>s;
cout<<replace_num(s);
return 0;
}