判斷一個字符串是否是回文的方法可以使用雙指針的方式。具體步驟如下:
定義兩個指針,一個指向字符串的開頭,一個指向字符串的末尾。
當兩個指針指向的字符相同時,將兩個指針分別向字符串的中間移動,繼續比較下一個字符。
如果兩個指針指向的字符不相等,則字符串不是回文。
重復步驟2和3,直到兩個指針相遇或者交叉(當字符串長度為奇數時,相遇;當字符串長度為偶數時,交叉)。
如果在整個過程中沒有發現不相等的字符,則字符串是回文。
以下是一個示例代碼:
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
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("%s 是回文\n", str);
} else {
printf("%s 不是回文\n", str);
}
return 0;
}
輸入一個字符串后,程序會輸出該字符串是否是回文。