面試題 01.01. 判定字元是否唯一
實現乙個演算法,確定乙個字串 s 的所有字元是否全都不同。
示例 1:
輸入: s = "leetcode"
輸出: false
示例 2:輸入: s = "abc"
輸出: true
限制:0 <= len(s) <= 100
如果你不使用額外的資料結構,會很加分。
使用unordered_set容器,該容器自動去重,最後比較容器的size與原字串的size即可知道字串是否重複。
class solution
return cus.size() == astr.size();}};
時間複雜度: o(n)
空間複雜度: o(n)
位運算/狀態壓縮
在原題目中,只給了小寫字母示例,一共有26個字母,而int有32位,所以int的相應位是否為1,可以作為判斷重複的依據。
class solution
return true;}};
時間複雜度: o(n)
空間複雜度: o(1)
容器可以使用迭代器進行初始化.
紅黑樹需要遵循如下幾個規則:
每次初始插入的節點為紅色,如果插入後破壞了上述的規則,就需要調調整,調整有兩種方法:
紅黑樹總結:紅黑樹中與其節點必須要始終滿足上述五個規則,當插入或者刪除乙個節點時,可能會破壞規則,所以需要通過一系列的變色和旋轉來進行調整,使之最終滿足上述五個規則。
具體操作例項:
面試題 01 01 判定字元是否唯一
實現乙個演算法,確定乙個字串 s 的所有字元是否全都不同。此題首先可以問一下是否為ascii字元還是unicode字元。對於ascii字元來說最多就256個字元,因此,如果大於256在false。自己解 bool isunique string astr return true 金典解 bool i...
面試題 01 01 判定字元是否唯一
面試題 01.01.判定字元是否唯一 力扣 leetcode 使用雜湊表就會很簡單,時空複雜度都是o n class solution for const auto c astr return true 可以使用bitset class solution for const auto c astr ...
刷題 力扣 面試題 01 01 判定字元是否唯一
題目鏈結 題目描述 實現乙個演算法,確定乙個字串 s 的所有字元是否全都不同。示例 1 輸入 s leetcode 輸出 false示例 2 輸入 s abc 輸出 true限制 題目分析 根據題目描述,沒有提到字串中可能出現的字元範圍,已經包含字元的編碼方式 對字串進行排序,排序後相同的字元相鄰 ...