#include <stdio.h>
#include <string.h>
int checkPalindrome(char *str, int start, int end) {
if (start >= end) {
return 1;
}
if (str[start] != str[end]) {
return 0;
}
return checkPalindrome(str, start + 1, end - 1);
}
int main() {
char str[100];
printf("Enter a string: ");
scanf("%s", str);
if (checkPalindrome(str, 0, strlen(str) - 1)) {
printf("The string is a palindrome permutation.\n");
} else {
printf("The string is not a palindrome permutation.\n");
}
return 0;
}
這段代碼首先定義了一個名為checkPalindrome
的函數,該函數用于檢測給定字符串是否為回文排列。函數的遞歸思想是,從字符串的開頭和結尾開始比較字符是否相等,逐步向中間靠攏,直到整個字符串被檢測完畢。如果在任何時候發現不相等的字符,則返回0,否則返回1。
在main
函數中,用戶輸入一個字符串,然后調用checkPalindrome
函數進行檢測。根據函數的返回值,輸出相應的結果。
可以通過在終端中編譯并運行該程序,輸入一個字符串,程序將告訴你該字符串是否為回文排列。