面试题05. 替换空格

  1. 请实现一个函数,把字符串 s 中的每个空格替换成"%20"
  2. 示例 1
  3. 输入:s = "We are happy."
  4. 输出:"We%20are%20happy."
  5. 限制:
  6. 0 <= s 的长度 <= 10000

解题思路:

日常解题法:本次提交使用比较简单的遍历替换法

// 时间复杂度:O(n)遍历字符串s一遍
// 空间复杂度:O(n),额外创建字符数组,长度为s的长度的3倍
func replaceSpace(s string) string {
    result := []rune{}
    for _,item :=range s{
        if item == ' '{
           result = append(result, []rune{'%','2','0'}...)
        }else{
            result = append(result,item)
        }
    }
    return string(result)
}

这种解法其实有一点不好,golang进行切片扩容时会有性能问题。

面试装逼法:推荐使用计数替换法,golang strings.replace 方法中使用的就是这种方法进行的字符串替换

// TODO

面试题05-easy. 替换空格 - 图1