Swift LeetCode

算法:字符串中第一个只出现一次的字符

2018-04-10  本文已影响127人  TimberTang

题目: 在字符串种找出第一个只出现一次的字符, 如"abaccgagg" 则输出"b"

参考代码如下 时间负责度 为 O(n)

class solution {
    // 利用hash表存, key 存每个字符 value 存每个字符对应的个数
    // 第一次 存 key 和value
    // 第二次遍历字符. 判断 map 内第一个count 为 1 的就是结果
    func findFirstCharOnlyOnce(from string: String) -> String{
        guard string.count > 0 else {
            return ""
        }
        var result = ""
        var map = [Character: Int]()
        for char in string {
            if let count = map[char], count > 0 {
                map[char] = count + 1
            }else {
                map[char] = 1
            }
        }
        for char in string {
           if let count = map[char], count == 1 {
                result = String(char)
                return result
            }
        }
        return result
    }
}

相关题目 都利用hash表来 实现相关的运算

上一篇 下一篇

猜你喜欢

热点阅读