day8:
344 Reverse String:
class Solution {
public:
void reverseString(vector<char>& s) {
int left = 0;
int right = s.size()-1;
while(right>left){
swap(s[left],s[right]);
right--;
left++;
}
}
};
541 Reverse String:
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;
}
};
151 Reverse words in a string:
class Solution {
public:
string removeEmpty(string s) {
int slow = 0;
int fast = 0;
while(s.size()>0 && fast<s.size() && s[fast] == ' '){
fast++;
}
for(;fast<s.size();fast++){
if(fast-1 > 0 && s[fast-1] == s[fast] && s[fast] == ' '){
continue;
}
else{
s[slow] = s[fast];
slow++;
}
}
if(slow-1>0 && s[slow-1] == ' '){
s.resize(slow-1);
}
else{
s.resize(slow);
}
return s;
}
void reverse(string& s, int start, int end){
while (start < end) {
swap(s[start], s[end]);
start++;
end--;
}
}
string reverseWords(string s) {
string new_s = removeEmpty(s);
reverse(new_s, 0, new_s.size() - 1);
int start = 0;
for (int i = 0; i <= new_s.size(); i++) {
if (i == new_s.size() || new_s[i] == ' ') {
reverse(new_s, start, i - 1);
start = i + 1;
}
}
return new_s;
}
};