反转字符串
题解:
使用双指针,从数组的两端开始,进行对换
代码:
反转字符串 ii
题解:
套用上题的反转方法,将字符串列表化;题意的意思是计数至2k,那我们每次遍历至2k,即遍历的步长为2k,然后判断是否有反转的区间
代码:
剑指Offer 05.替换空格
题解:
本题可以使用双指针,将字符串列表化,然后扩容列表的大小,扩充的大小是原字符串中空格的2倍,具体原因,我在代码中已写明,然后定义两个指针left 和right,left指向原列表的末尾,right指向扩充后的列表的末尾,当left指针指向的不是空格的时候,将当前的放到right指针指向,当left指针指向的是空格时,right指针需要放下‘%20’,占3个字符
代码:
剑指 Offer 58 - II. 左旋转字符串
题解:
1.反转区间为前n的子串
2.反转区间为n到末尾的子串
3.反转整个子串
代码:
反转字符串中的单词
题解:
不使用辅助空间
1.移除多余空间,不仅仅只是字符串两头的空格,还有字符串中的多余空格,可以将字符串放入列表中,逐个遍历,当前字符是空格的时候,我们也要判断列表中的末尾是不是已经有了空格,若是有了就不用加入到列表了
2.将整个字符串反转,这个使用双指针即可,从两头开始,两两交换,注意,第一步返回的是列表,此步骤操作的是列表
3.将每个单词反转,难点就是找到每个单词,我们判断有空格的时候记录这个下标,然后调用第二步的方法进行这个区间的字符串反转