判斷一個字符串是否是回文字符串的常見方法是使用雙指針法。
具體步驟如下:
定義兩個指針,分別指向字符串的首尾字符。
循環判斷首尾字符是否相等,若相等則繼續向中間移動指針,若不相等則說明不是回文字符串。
當指針相遇或者交叉時,說明字符串是回文字符串。
以下是一個示例的C語言代碼實現:
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
bool isPalindrome(char* s) {
int left = 0; // 左指針
int right = strlen(s) - 1; // 右指針
while (left < right) {
if (s[left] != s[right]) {
return false; // 如果首尾字符不相等,則不是回文字符串
}
left++;
right--;
}
return true; // 首尾字符全部相等,是回文字符串
}
int main() {
char s[] = "level";
if (isPalindrome(s)) {
printf("%s is a palindrome.\n", s);
} else {
printf("%s is not a palindrome.\n", s);
}
return 0;
}
輸出結果為:
level is a palindrome.