leetcode 判斷旋轉字串

2021-08-31 20:52:57 字數 596 閱讀 9016

給定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...