344.反转字符串
题目链接/文章讲解/视频讲解:代码随想录
不多说,不过可以顺便复习一下reverse函数。
541. 反转字符串II
题目链接/文章讲解/视频讲解:代码随想录
错误示范:
class Solution {
public:
string reverseStr(string s, int k) {
int i = 0;
for( ; i < s.size() && 2 * k < s.size(); i += 2 * k ){
reverse(s.begin() + i, s.begin() + i + k);
}
if(s.size() - 1 - i >= k)
reverse(s.begin() + i, s.begin() + i + k);
else
reverse(s.begin() + i, s.end());
return s;
}
};
只过了十几个用例,跟题解一比,有太多冗余的地方了,判断完全可以都写在循环里,reverse函数是左闭右开,size-1根本没有必要,k也不需要判断是否小于size,还是题解的代码比较优雅。
卡码网:54.替换数字
题目链接/文章讲解:代码随想录
先看了一遍题解再写的,自己写的时候漏了一步oldIndex--,用双指针解这道题很巧妙。
151.翻转字符串里的单词
题目链接/文章讲解/视频讲解:代码随想录
比较长的题还是建议在把题解看懂后自己再手敲一遍,官方题解可以看看,还有其他网友写的空间复杂度为O(n)的也可以学学,都挺有用。
卡码网:55.右旋转字符串
题目链接/文章讲解:
曾经在PTA的乙级训练题里做过,当时对这个解法印象很深。