代码随想录刷题第八天
class Solution {
public:
void my_swap(char &a, char &b){
char tmp;
tmp = a;
a= b;
b = tmp;
}
void reverseString(vector<char>& s) {
int left = 0;
int right = s.size()-1;
while(left < right){
my_swap(s[left],s[right]);
left++;
right--;
}
}
};
#include<iostream>
#include<string>
using namespace std;
class Solution {
public:
string reverseStr(string s, int k) {
int board = 0;
while (board < s.size())
{
if (board+k > s.size())
{
reverse(s.begin() + board,s.end());
}else
{
reverse(s.begin()+board,s.begin()+board+k);
}
board += 2*k;
}
return s;
}
};
class Solution {
public:
string replaceSpace(string s) {
int len = 0;
int m = s.size();
for(int i = 0; i < s.size(); i++ ){
if(s[i] == ' '){
len++;
}
}
len = s.size()+2*len;
int j = 0,n = 0;
string t(len,0);
while(j <= s.size()){
if(s[j] == ' '){
t[n] = '%';
t[n+1] = '2';
t[n+2] = '0';
j++;
n+=3;
}else{
t[n] = s[j];
n++;
j++;
}
}
return t;
}
};
#include<iostream>
#include<string>
using namespace std;
class Solution {
public:
void removespace(string &s){
int slow = 0;
for (int i = 0; i < s.size(); i++)
{
if (s[i] != ' ')
{
if(slow != 0) s[slow++] = ' ';
while (s[i] != ' ' && i < s.size())
{
s[slow++] = s[i++];
}
}
}
s.resize(slow);
}
void reverse(string& s, int start, int end) {
for (int i = start, j = end; i < j; i++, j--) {
swap(s[i], s[j]);
}
}
string reverseWords(string s) {
removespace(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;
}
};
class Solution {
public:
string reverseLeftWords(string s, int n) {
string tmp(n,'0');
for(int i = 0; i < n; i++){
tmp[i] = s[i];
}
int slow = 0;
for(int i = n; i < s.size(); i++){
s[slow++] = s[i];
}
int index = 0;
for(int i = s.size() - n;i<s.size(); i++){
s[i] = tmp[index++];
}
return s;
}
};