344 反转字符串
class Solution {
public:
void reverseString(vector<char>& s) {
char tmp;
for (int i = 0, j = s.size() - 1; i < s.size()/2; i++, j--) {
tmp = s[i];
s[i] = s[j];
s[j] = tmp;
}
}
};
541
class Solution {
public:
string reverseStr(string s, int k) {
for(int i = 0; i < s.size(); i += 2*k){
if(i + k <= s.size()){
reverse(s.begin() + i, s.begin() + i +k);
}
else{
reverse(s.begin()+i, s.end());
}
}
return s;
}
};
卡码54
#include <iostream>
using namespace std;
int main(){
string s;
while (cin >> s) {
int count = 0;
int stringSize1 = s.size();
for (int i = 0; i < s.size(); i++) {
if (s[i] >= '0' && s[i] <= '9') {
count++;
}
}
s.resize(s.size() + count * 5);
int stringSize2 = s.size();
for (int i = stringSize2 - 1, j = stringSize1 - 1; j < i; i--, j--) {
if (s[j] > '9' || s[j] < '0') {
s[i] = s[j];
} else {
s[i] = 'r';
s[i - 1] = 'e';
s[i - 2] = 'b';
s[i - 3] = 'm';
s[i - 4] = 'u';
s[i - 5] = 'n';
i -= 5;
}
}
cout << s << endl;
}
}
151
class Solution {
public:
void reverse(string& s, int start, int end){
for (int i = start, j = end; i < j; i++, j--) {
swap(s[i], s[j]);
}
}
void removeExtraSpaces(string& s) {
int slow = 0;
for (int i = 0; i < s.size(); i++) {
if (s[i] != ' ') { //遇到非空格触发
if (slow != 0) //开头不加空格
s[slow++] = ' ';
while (i < s.size() && s[i] != ' ') { //补上该单词,遇到空格说明单词结束。
s[slow++] = s[i++];
}
}
}
s.resize(slow);
}
string reverseWords(string s) {
removeExtraSpaces(s);
reverse(s, 0, s.size() - 1);
int start = 0;
for (int i = 0; i <= s.size(); i++) {
if (i == s.size() || s[i] == ' ') { //到达空格或者串尾,说明一个单词结束 ,翻转
reverse(s, start, i - 1);
start = i + 1;
}
}
return s;
}
};
卡码55
#include<iostream>
#include<algorithm>
using namespace std;
int main() {
int n;
string s;
cin >> n;
cin >> s;
int len = s.size();
reverse(s.begin(), s.end());
reverse(s.begin(), s.begin() + n);
reverse(s.begin() + n, s.end());
cout << s << endl;
}