代码随想录Day8

344. 反转字符串 - 力扣(LeetCode)

简单的进行交换即可

func reverseString(s []byte)  {
    for i, j := 0, len(s)-1; i < j; {
        s[i], s[j] = s[j], s[i]
        i++
        j--
    }
}

541. 反转字符串 II - 力扣(LeetCode)

和上一道题差不太多

func reverseStr(s string, k int) string {
    s1 := []byte(s)
    for i := 0; i < len(s1); i = i+k*2 {
        for j, t := i, i+k-1; j < t; j, t = j+1, t-1 {
            if t > len(s1)-1 {
                t = len(s1)-1
            }
            s1[j],s1[t] = s1[t],s1[j]
        }
    }
    return string(s1)
}

LCR 122. 路径加密 - 力扣(LeetCode)

简单替换一下即可

func pathEncryption(path string) string {
    p := []byte(path)
    for i := 0; i < len(p); i++ {
        if p[i] == '.' {
            p[i] = ' '
        }
    }
    return string(p)
}

151. 反转字符串中的单词 - 力扣(LeetCode)

计算好单词数量,预分配空间,再进行填充

func reverseWords(s string) string {
    var strs [][]byte
    var temp []byte
    for i := 0; i < len(s); i++ {
        if s[i] != ' ' {
            temp = append(temp, s[i])
        } else if len(temp) != 0 {
            strs = append(strs, temp)
            temp = make([]byte, 0)
        }
    }
    if len(temp) != 0 {
        strs = append(strs, temp)
    }
    var ans []byte
    for i := len(strs)-1; i >= 0; i-- {
        ans = append(ans, strs[i]...)
        ans = append(ans, ' ')
    }
    ans = ans[:len(ans)-1]
    return string(ans)
}

LCR 182. 动态口令 - 力扣(LeetCode)

func reverseLeftWords(s string, n int) string {
    c := []byte(s)
    c = append(c, c[:n]...)
    c = c[n:]
    return string(c)
}

今天是简单的一天

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值