睡不著就來寫程式碼吧!!!!
阿新 • • 發佈:2018-12-09
1.實現一個函式,可以左旋字串中的k個字元。
例如:ABCD左旋一個字元得到BCDA
ABCD左旋兩個字元得到CDAB
void left_handed(char arr[], int sz, int k) { int tmp = 0; int i = 0; while(k) { tmp = arr[0]; for(i=1; i<sz; i++) { arr[i-1] = arr[i]; } arr[sz-1] = tmp; k--; } } int main() { int sz = 0; char arr[] = "abcd"; int k = 0; scanf("%d", &k); sz = strlen(arr); left_handed(arr, sz, k); printf("%s", arr); system("pause"); return 0; }
2.判斷一個字串是否為另外一個字串旋轉之後的字串。
例如:給定s1 =AABCD和s2 = BCDAA,返回1,給定s1=abcd和s2=ACBD,返回0.
int is_handed(char arr1[], char arr2[], int sz) { int tmp = 0; int i = 0; int count = 0; while(sz) { tmp = arr1[0]; for(i=1; i<sz; i++) { arr1[i-1] = arr1[i]; } arr1[sz-1] = tmp; sz--; if(strcmp(arr1,arr2) == 0) { count++; } } if(count == 0) { return 0; } else return 1; } int main() { int sz = 0; char arr1[] = "abcdef"; char arr2[] = "bdcefa"; sz = strlen(arr1); printf("%d", is_handed(arr1, arr2, sz)); system("pause"); return 0; }