四数之和/移除元素/删除有序数组中的重复项/移动零/比较含退格的字符串/反转字符串/替换空格/颠倒字符串中的单词/左旋/

73 阅读1分钟

四数之和

image.png

两个for循坏 带两个指针,注意四次去重。指针判断学会用for l < r

移除元素

image.png

也是双指针,快指针遍历数组,慢指针等待判断不等时,赋值

删除有序数组中的重复项

image.png

双指针,有序数组 指针判断学会用for l < r

移动零

image.png

双指针 fast遍历数组,不等于0的时候,和slow互换

比较含退格的字符串

image.png 先去遍历数组,用skip记录#的个数,下一次遍历的时候,sjip>0就要删除这个字符

大循环用for j>=0 || i>=0,再分别去遍历数组

当前如果break了 就去比较两个byte是不是相等,这时候两种情况,一个是ij>0那就判断等不等,一个是有一个i或者j小于0,那就直接false

反转字符串

image.png

image.png

替换空格

image.png

这个有意思,首先一点[]byte(s),把字符串强制转化为切片。。。

然后去判断' ',如果这个位置是的话,就在ans里append

  1. a = append(a, []int{1,2,3}...) // 追加一个切片, 切片需要解包

颠倒字符串中的单词

image.png

函数strings.Fields(s)删除空格返回 []string

左旋字符串

image.png

image.png