阅读 360

[leetcode 剑指offer] [Swift] 05替换空格

预告:常规解法,没有新奇思路,但发现了一个小小问题

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

输入:s = "We are happy."
输出:"We%20are%20happy."
复制代码

1.第一个想到的就是String的方法replacingOccurrences

如果是这样做就太没意思了。

class Solution {
    func replaceSpace(_ s: String) -> String {
        return s.replacingOccurrences(of: " ", with: "%20")
    }
}
复制代码

2. 第二个想到的就是遍历、替换

最开始这样写的

class Solution {
    func replaceSpace(_ s: String) -> String {
        var tmpS = ""
        for char in s {
            var tmpChar = String(char)
            if char == " "{
                tmpChar = "%20"
            }
            tmpS = tmpS + tmpChar
        }
        return tmpS
    }
}
复制代码

临时变量tmpChar有点多余,完全没有必要存在

class Solution {
    func replaceSpace(_ s: String) -> String {
        var tmpS = ""
        for char in s {
            tmpS = tmpS + (char.isWhitespace ? "%20" : String(char))
        }
        return tmpS
    }
}
复制代码

3.发现一个有意思的事

leetcode判断时间和内存会存在一点点误差,时间大概在8ms左右,内存大概在0.4M左右。

以上提交是同一份代码,不同时间的提交记录。

所以呢,不要执迷于几毫秒的差别,可能就是你提交的那会儿刚好就差8ms😂

4.再看下耗时最少的提交

😂这也行,是不是心里好受多了

文章分类
iOS
文章标签