算法:字符串中第一個只出現一次的字符

題目: 在字符串種找出第一個只出現一次的字符, 如"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"
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容