給定s1 =aabcd和s2 = bcdaa,返回1,給定s1=abcd和s2=acbd,返回0.
拿到題目,經過思考其實我們可以將題目的思路轉化為,將s1每次旋轉一次來和s2比較大小,相同則返回1,不同則返回0,將s1旋轉strlen(s1)次即可完成比較,這裡其實大家不用考慮左旋還是右旋的問題,因為旋轉是對稱的,左旋一次就相當於右旋len-1次。我們寫出了以下**。
#include#includevoid reverse(char* arr)
}int reverse1(char* arr1, char* arr2,int sz)
} return 0;
}int main()
方法優化
上面的**是我們可以寫出的常規**,那我們來換一種辦法(大佬教的,哈哈哈),假如我們的s1是abcd,s2是bcda,我們將s1拷貝連線乙份變成abcdabcd,大家可以看s1與s2的關係,沒錯,s2是s1的子字串,我借用strstr函式就可以實現查詢。**如下
#include#includeint main()
leetcode 旋轉字串
給定兩個字串,a 和 b。a 的旋轉操作就是將 a 最左邊的字元移動到最右邊。例如,若 a abcde 在移動一次之後結果就是 bcdea 如果在若干次旋轉操作之後,a 能變成b,那麼返回true。採用遞迴的思路進行,每次旋轉1位。思考遞迴終止條件,最多旋轉字串長度次數。旋轉一位思路 採用乙個臨時變...
LeetCode 字串 左旋轉字串
字串的左旋轉操作是把字串前面的若干個字元轉移到字串的尾部。請定義乙個函式實現字串左旋轉操作的功能。比如,輸入字串 abcdefg 和數字2,該函式將返回左旋轉兩位得到的結果 cdefgab 示例 輸入 s abcdefg k 2 輸出 cdefgab 輸入 s lrloseumgh k 6 輸出 u...
旋轉字串並判斷
左旋字串 define crt secure no warnings 1 include include include includevoid reverse char str,int left,int right assert str while left 右旋字串 define crt sec...