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

题目: 在字符串种找出第一个只出现一次的字符, 如"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表来 实现相关的运算

  • 从第一个字符串种删除第二个字符串种出现过的字符 . 例如 第一个 为"i love swift" 第二个为 "object-C" 则输出 "i lv swif"
  • 删除一个字符串中重复出现的字符 例如 "google" 输出 "gole"
  • 判断两个字符串是不是变位数 , 变位树 为两个字符串种的字符 相同. 且 字符出现的个数相同 例如"silent" 和 "listen"
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容