題目: 在字符串種找出第一個只出現(xiàn)一次的字符, 如"abaccgagg" 則輸出"b"
參考代碼如下 時間負責度 為 O(n)
class solution {
// 利用hash表存, key 存每個字符 value 存每個字符對應的個數(shù)
// 第一次 存 key 和value
// 第二次遍歷字符. 判斷 map 內(nèi)第一個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表來 實現(xiàn)相關的運算
- 從第一個字符串種刪除第二個字符串種出現(xiàn)過的字符 . 例如 第一個 為"i love swift" 第二個為 "object-C" 則輸出 "i lv swif"
- 刪除一個字符串中重復出現(xiàn)的字符 例如 "google" 輸出 "gole"
- 判斷兩個字符串是不是變位數(shù) , 變位樹 為兩個字符串種的字符 相同. 且 字符出現(xiàn)的個數(shù)相同 例如"silent" 和 "listen"