字串的旋轉
本文部落格是基於july大神的著作《程式設計之法-面試和演算法心得》中的字串一章的筆記。july,可以說從大一開始就一直讀他的部落格,從最基礎的演算法,到後來聽起來高大上的機器學習演算法,當google之乙個演算法不懂時就拜讀july的部落格,可以說一年來一直受july大神部落格的影響。本文是此書的第一章—字串的旋轉。
題目描述:給定乙個字串,要求將字串前面的若干個字元移到字串的尾部。如,將字串「abcdef」的前3個字元『a』,『b』,『c』移到字串的尾部,那麼原來的字串將變成「defabc」。請寫乙個函式實現此功能。
解法一:
初看此題,可能最先想到方法為將需要移動的字元乙個乙個地移到字串的尾部,**如下:void leftshiftone(char *s,int n)
{ char t = s[0];
int i;
for(i=1;i方法即可。
程式設計之法 字串旋轉
題目描述 給定乙個字串,要求將字串前面的若干個字元移到字串的尾部。例如 將字串 abcdef 的前3個字元 a b 和 c 移到字串的尾部,那麼原字串將程式設計 defabc 解法1 蠻力移位,include include define len a sizeof a sizeof a using ...
《程式設計之法》1 1 字串旋轉
題目 給定乙個字串,左旋轉m個字元,輸出旋轉後的字串。例如 abcdef 左旋轉3個字元後成為 defabc 解決辦法 三步反轉 將 abcdef 看成兩部分 x abc y def 先對x反轉,再對y反轉,然後整體反轉。void reversestring char s,int bg,int ed...
《程式設計之法》 字串的包含
給定一長字串a和一短字串b。請問,如何最快地判斷出短字串b中的所有字元是否都在長字串a中。設乙個整數hash,對於a中的每一位,通過 運算在二進位制hash對應的位上置位。然後對於b中的每一位,通過 運算看是否hash中該位上是否有置位,以此來判斷是否有包含該字元。bool stringcontai...