判断一个字符串是否是回文字符串的常见方法是使用双指针法。
具体步骤如下:
定义两个指针,分别指向字符串的首尾字符。
循环判断首尾字符是否相等,若相等则继续向中间移动指针,若不相等则说明不是回文字符串。
当指针相遇或者交叉时,说明字符串是回文字符串。
以下是一个示例的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.