LeetCode刷题计划:Day 3

剑指 Offer 05. 替换空格

  • 题目描述:

    请实现一个函数,把字符串 s 中的每个空格替换成"%20"。

    示例1:

    输入:s = "We are happy."
    输出:"We%20are%20happy."

    限制:

    • 0 <= s 的长度 <= 10000
  • 解题思路:

    遍历字符串中每个字符进行替换:

    func replaceSpace(s string) string {
        var res []byte
        for _, c := range []byte(s) {
            if string(c) == " " {
                res = append(res, []byte("%20")...)
            } else {
                res = append(res, c)
            }
        }
        return string(res)
    }

剑指 Offer 58 - II. 左旋转字符串

  • 题目描述:

    字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。

    示例1:

    输入: s = "abcdefg", k = 2
    输出: "cdefgab"

    示例2:

    输入: s = "lrloseumgh", k = 6
    输出: "umghlrlose"

    限制:

    • 1 <= k < s.length <= 10000
  • 解题思路:

    重新切片:

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

你可能感兴趣的