题目: 在字符串种找出第一个只出现一次的字符, 如”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”