判定字元是否唯一 位運算

2021-10-23 01:49:15 字數 809 閱讀 3620

實現乙個演算法,確定乙個字串s的所有字元是否全都不同。

《程式設計師面試金典》01.02

這是乙個簡單的問題,解決的辦法比較多,比如雙迴圈呀,利用c++的stl呀,或者使用各種標誌容器記錄呀,這裡給出一種標誌容器的方法:

bool

isunique

(string astr)

return

true

;}

時間的維度應該沒得說了,但是空間的維度仍然有優化的餘地。

我們使用的標誌陣列大小是26,我們要想優化,就必須有26個記錄的點,但我們仔細想想,這26個資料中是不是都只使用了0或者1,其他的數字無意義,所以,我們可以考慮使用乙個int型別的資料來儲存這些01資訊,乙個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...