刷题Day4-字符串
344. 反转字符串
左右两个指针,互换
541. 反转字符串 II
反转指定位置的字符串,本质和上面的一样。需要注意边界条件
剑指 Offer 05. 替换空格
简单的字符串复制
如果不想开辟额外的空间,也可以统计一次有多少空格,然后扩展原来的字符串。随后生成对应的char[],然后使用两个指针,进行复制。
151. 颠倒字符串中的单词
这题还挺有难度的。
主要的思路是如何控制空格的问题。
找到单词,并且颠倒位置的思路很简单,从后往前遍历即可。
难点在于如何控制前后没有空格,我的方法是在遇到第一个单词之前,都不能往stringbuffer中写。并且用flag进行控制,在跳出循环之后,如果flag表示,之前读到的是字符,则说明还有一个单词没有写入,写入最近的单词。
还要控制两个单词之间的空格,如果读到了新单词,并且前面写过一个旧的单词,就必然要写一个空格来间隔。
剑指 Offer 58 - II. 左旋转字符串
这道题也有意思,可以使用一般的方法加加减减
但是有一种不使用额外的空间的方法,先反转前面的字符,再反转后面的字符,再反转整个字符。这个过程就不会开辟新的空间。
电脑没电了,回寝室做KMP的题!

浙公网安备 33010602011771号