實現回文字符串算法的一種常見方法是通過比較字符串的首尾字符來判斷是否為回文。具體步驟如下:
下面是一個簡單的C語言實現示例:
#include <stdio.h>
#include <stdbool.h> // 引入bool類型
bool isPalindrome(char *str) {
int left = 0; // 左指針
int right = strlen(str) - 1; // 右指針
while (left < right) {
if (str[left] != str[right]) {
return false; // 不相等,不是回文字符串
}
left++;
right--;
}
return true; // 通過循環,指針交叉或重合,是回文字符串
}
int main() {
char str[100];
printf("請輸入一個字符串:");
scanf("%s", str);
if (isPalindrome(str)) {
printf("是回文字符串\n");
} else {
printf("不是回文字符串\n");
}
return 0;
}
請注意,上述代碼假設輸入的字符串不包含空格或其他特殊字符。如果字符串中包含這些字符,則需要對輸入字符串進行預處理,去除這些特殊字符。另外,上述算法的時間復雜度是O(n),其中n是字符串的長度。