344.反转字符串
1.自己思路:
直接stl api reverse转换(传参为auto迭代器)
2.题解思路
双指针思想
奇 偶 的边界条件 举例代入判断(/返回为整数 不四舍五入)
541. 反转字符串II
1.自己思路:
1.使用reverse方法 reverse的传参混乱了 思路不清晰
2.题解思路
reverse的使用方法两种1.两个传参 auto 针对vector与string
2.2个传参 int int 两个下标 针对数组(数字数组或者字符数组)
需要考虑边界问题
核心思想在于遍历的时候 不再是i++ 而是i+-2*k
string的size方法返回的是无符号整型 直接减去Int值可能出现负数 无符号数出现负数则会出问题
剑指Offer 05.替换空格
1.自己思路
最简单的一层for循环
151.翻转字符串里的单词
1.自己思路
分割每一个单词 然后依次放进去 但是代码写的杂乱 通过率20%
2.题解思路
- 移除多余空格 分使用erase(时间复杂度(n)与不使用两个方法 不使用erase则使用双指针方法 fast遍历 slow重新定义string for来进行fast遍历 判断空格 里面while循环来填写单词 以空格结束 不为空格->fast slow都往后赋值->为空格退出while->进入下层遍历
- 将整个字符串反转
- 将每个单词反转
- 因为这里传入的是闭合的区间(因为swap里面 start和end可以取到 所以这里传入的I得-1 I可以取到最后的末尾
- 第一次编写失败 二次编写成功
- i可以取到s.size()的原因: 因为根据s[i]为空格判断的所以需要传入i-1
剑指Offer58-II.左旋转字符串
1.自己思路
先根据target分割 然后再重新组合
2.题解思路
限制于本串操作
- 反转区间为前n的子串
- 反转区间为n到末尾的子串
- 反转整个字符串
巧妙!!!
注意reverse左闭右开