面试题05. 替换空格
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例 1:
输入:s = "We are happy."
输出:"We%20are%20happy."
限制:
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