實現乙個演算法,確定乙個字串s
的所有字元是否全都不同。
《程式設計師面試金典》01.02這是乙個簡單的問題,解決的辦法比較多,比如雙迴圈呀,利用c++的stl呀,或者使用各種標誌容器記錄呀,這裡給出一種標誌容器的方法:
bool
isunique
(string astr)
return
true
;}
時間的維度應該沒得說了,但是空間的維度仍然有優化的餘地。
我們使用的標誌陣列大小是26
,我們要想優化,就必須有26
個記錄的點,但我們仔細想想,這26
個資料中是不是都只使用了0
或者1
,其他的數字無意義,所以,我們可以考慮使用乙個int型別的資料來儲存這些0
1
資訊,乙個int
型別的資料是32
位,完全足夠儲存這些資訊,我們理清一下思路,我們需要的是利用這32
位來記錄這些資訊,所以我們肯定要使用位運算,具體的思路如下:
bool
isunique
(string astr)
return
true
;}
atfwus --writing by 2020–03–30
演算法 判定字元是否唯一
實現乙個演算法,確定乙個字串 s 的所有字元是否全都不同。示例 1 輸入 s leetcode 輸出 false 示例 2 輸入 s abc 輸出 true 限制 0 len s 100 如果你不使用額外的資料結構,會很加分。用乙個32位整數的各個二進位制位代表該位對應的序號是否有字元,例如1表示存...
LeetCode 1 判定字元是否唯一
實現乙個演算法,確定乙個字串 s 的所有字元是否全都不同。示例 1 輸入 s leetcode 輸出 false 示例 2 輸入 s abc 輸出 true 限制 0 len s 100 如果你不使用額外的資料結構,會很加分。方法一 使用string中的indexof方法 public static...
面試題 01 01 判定字元是否唯一
實現乙個演算法,確定乙個字串 s 的所有字元是否全都不同。此題首先可以問一下是否為ascii字元還是unicode字元。對於ascii字元來說最多就256個字元,因此,如果大於256在false。自己解 bool isunique string astr return true 金典解 bool i...