給定兩個字串, a 和 b。
a 的旋轉操作就是將 a 最左邊的字元移動到最右邊。 例如, 若 a = 『abcde』,在移動一次之後結果就是』bcdea』 。如果在若干次旋轉操作之後,a 能變成b,那麼返回true。
採用遞迴的思路進行,每次旋轉1位。思考遞迴終止條件,最多旋轉字串長度次數。
旋轉一位思路:
採用乙個臨時變數來訪問陣列頭部變數,然後從頭到尾遍歷陣列,每乙個都左移,再將臨時變數賦值給陣列尾部元素。這樣我們完成了旋轉一位的操作。
然後我們對比兩個字串,看是否相等。如果到達次數仍然兩個字串不相等,那麼直接返回false。
bool rotatestring
(char
* a,
char
* b)
a[lena-1]
=temp;
for(k=
0;kif(k==lena)
return true;
}return false;
}
LeetCode 字串 左旋轉字串
字串的左旋轉操作是把字串前面的若干個字元轉移到字串的尾部。請定義乙個函式實現字串左旋轉操作的功能。比如,輸入字串 abcdefg 和數字2,該函式將返回左旋轉兩位得到的結果 cdefgab 示例 輸入 s abcdefg k 2 輸出 cdefgab 輸入 s lrloseumgh k 6 輸出 u...
leetcode 判斷旋轉字串
給定s1 aabcd和s2 bcdaa,返回1,給定s1 abcd和s2 acbd,返回0.拿到題目,經過思考其實我們可以將題目的思路轉化為,將s1每次旋轉一次來和s2比較大小,相同則返回1,不同則返回0,將s1旋轉strlen s1 次即可完成比較,這裡其實大家不用考慮左旋還是右旋的問題,因為旋轉...
LeetCode 左旋轉字串
字串的左旋轉操作是把字串前面的若干個字元轉移到字串的尾部。請定義乙個函式實現字串左旋轉操作的功能。比如,輸入字串 abcdefg 和數字2,該函式將返回左旋轉兩位得到的結果 cdefgab 輸入 s abcdefg k 2 輸出 cdefgab 輸入 s lrloseumgh k 6 輸出 umgh...