《程式設計之法》 字串的包含

2021-07-28 21:33:01 字數 454 閱讀 5603

給定一長字串a和一短字串b。請問,如何最快地判斷出短字串b中的所有字元是否都在長字串a中。

設乙個整數hash,對於a中的每一位,通過』|』運算在二進位制hash對應的位上置位。然後對於b中的每一位,通過』&』運算看是否hash中該位上是否有置位,以此來判斷是否有包含該字元。

bool stringcontain(const

string a,const

string b)

for (int j = 0; j < b.length(); ++j)

}return

true;

}int main()

a contains b

a doesn't contain c

process finished with

exit code 0

程式設計之法 字串旋轉

題目描述 給定乙個字串,要求將字串前面的若干個字元移到字串的尾部。例如 將字串 abcdef 的前3個字元 a b 和 c 移到字串的尾部,那麼原字串將程式設計 defabc 解法1 蠻力移位,include include define len a sizeof a sizeof a using ...

程式設計之法之 字串的旋轉

字串的旋轉 本文部落格是基於july大神的著作 程式設計之法 面試和演算法心得 中的字串一章的筆記。july,可以說從大一開始就一直讀他的部落格,從最基礎的演算法,到後來聽起來高大上的機器學習演算法,當google之乙個演算法不懂時就拜讀july的部落格,可以說一年來一直受july大神部落格的影響。...

程式設計之美 字串移位包含

問題描述 兩個字串s1,s2,將s1迴圈位移,判斷s2是否被包含在其中。例如 s1 abcd s2 cda 將s1迴圈位移後得到bcda,s2被包含在s1迴圈位移後的字串中。思路 1 將s1移位一次,然後與s2比較一次。如果字串比較長,效率很低。思路 2 假設保留s1移位的結果,例如 s1 abcd...