首先,你可以問面試官,構成字串的字符集有多大?是ascii字元,還是只是26個字母? 還是有更大的字符集,對於不同的情況,我們可能會有不同的解決方案。
如果我們假設字符集是ascii字元,那麼我們可以開乙個大小為256的bool陣列來表徵每個字 符的出現。陣列初始化為false,遍歷一遍字串中的字元,當bool陣列對應位置的值為真, 表明該字元在之前已經出現過,即可得出該字串中有重複字元。否則將該位置的bool陣列 值置為true。
bool isunique_2(const string &str)
{ bool a[256];
memset(a,0,sizeof(a));
int length=str.length();
for(int i=0;i我們還可以通過位運算來減少空間的使用量。 用每一位表徵相應位置字元的出現。對於ascii字元,我們需要256位,即乙個長度為8的int 陣列a即可。這裡的關鍵是要把字元對應的數字,對映到正確的位上去。比如字元』b』對應的 **是98,那麼我們應該將陣列中的哪一位置為1呢?用98除以32,得到對應陣列a的下標: 3。98對32取模得到相應的位:2。
判斷乙個字串是否在另乙個字串中
方法一 string str1 nihaoksdoksad string str2 ok int total 0 for string tmp str1 tmp null tmp.length str2.length tmp tmp.substring 1 system.out.println st...
判斷乙個字串是否在另乙個字串中
find in set str,str1 判定str是否在str1中有,如果有,則返回其在str1中的位置,如果沒有,返回0 eg select find in set 13教 瀏陽基地,耕耘基地,文淵館,13教,測試基地,耕耘基地 返回4 這個函式有很大的侷限性,他只能判別是否存在於第二個字串中以...
php判斷乙個字串包含另乙個字串
a 58252,58253 如果 a 中存在 b,則為 true 否則為 false。b 58253 if strpos a,b false else 查詢字串在陣列中出現的次數 array array 1,hello 1,world hello 11 計算 string在 array 需為陣列 中...