字串包含問題

2021-06-18 21:39:53 字數 547 閱讀 8991

假設這有乙個各種字母組成的字串a,和另外乙個字串b,字串裡b的字母數相對少一些。什麼方法能最快的查出所有小字串b裡的字母在大字串a裡都有?

比如,如果是下面兩個字串:

string 1: abcdefghlmnopqrs

string 2: dcgsrqpo

答案是true,所有在string2裡的字母string1也都有。

如果是下面兩個字串:  

string 1: abcdefghlmnopqrs   

string 2: dcgsrqpz  

答案是false,因為第二個字串裡的z字母不在第乙個字串裡。

我們假設字母都由大寫字母組成……,我們先對小字串預處理,可以得到b裡包含哪些字元,這裡可以用位運算,或者用bool陣列。位運算簡單些,用乙個int中的26bit表示其是否在b中出現即可。

bool acontainsb(char *a,char *b) 

while (*a)

} return true;

}

字串包含問題

字串包含問題 判斷小字串的所有字元是否大字串都有 思路一 針對小字串的每乙個字元一一與大字串的字元輪詢比較即可,很明顯時間複雜度為o n m bool compare string s1,string s2 if j s2.length return true 思路二 對兩個字串分別排序,同時依次輪...

字串包含問題

兩個字串s1和s2,假設s1長度大於等於s2長度,判斷s2是否為s1的乙個子集。例如 s1 abcdefghi,s2 acefg,由於s2中的每個元素都出現在s1中,說明s1包含s2.若s2 acefgk,由於k不在s1中,因此s1不包含s2。設s1長度為m,s2長度為n 方法1 brute for...

字串包含問題

1 問題描述 存在字串1和字串2,假設字串2相對較短,如何快速地判定字串2中的字元都存在於字串1裡 假定字串只包含字母 2 舉例 字串1為abcdefghijk,字串2為abcde,則字串1包含字串2,因為字串2中包含的字母在字串1中也都有。3 解決方案 思路一 最直接的思路就是針對字串2中的每個字...