給定一長字串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...