代码随想录算法训练营第8天|LeetCode344.反转字符串、LeetCode541.反转字符串||、卡码网54.反转替换数字、LeetCode151.翻转字符串里的单词、右旋字符串
1、LeetCode344.反转字符串
很简单的一道题。
void reverseString(vector<char>& s) {
int size = s.size();
int mid = size/2;
for(int i=0 ; i<mid ;i++){
//可以用swap
int temp = s[i];
s[i] = s[size-1-i];
s[size-1-i] = temp;
}
return;
}
tip:实现这个功能的库函数为reverse()
2、LeetCode541.反转字符串||
思路:
实现:i每次跳2k个。
没写代码,有时间再写写。
接下来的估计都只能写写思路了。。。
3、卡码网54.反转替换数字
思路:双指针法+从后往前替换。这样就不需要额外的辅助空间。
4、LeetCode151.翻转字符串里的单词
要求不使用额外的辅助空间。
思路:
- 移除多余空格
- 将整个字符串反转
- 将每个单词反转
源字符串为:"the sky is blue "
- 移除多余空格 : “the sky is blue”
- 字符串反转:“eulb si yks eht”
- 单词反转:“blue is sky the”
右旋字符串
不太会