leetcode-day07-字符串

反转字符串


题解:

使用双指针,从数组的两端开始,进行对换

代码:


反转字符串 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.将每个单词反转,难点就是找到每个单词,我们判断有空格的时候记录这个下标,然后调用第二步的方法进行这个区间的字符串反转


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容