编写一个程序来判断一个字符串是否为回文字符串,可以使用以下方法:
双指针法
初始化两个指针,一个指向字符串的开头,另一个指向字符串的末尾。
逐步移动指针,比较对应位置的字符是否相等。
如果所有对应字符都相等,则该字符串是回文字符串;否则,不是回文字符串。
```cpp
include include using namespace std; bool isPalindrome(const string& s) { int left = 0; int right = s.size() - 1; while (left < right) { if (s[left] != s[right]) { return false; } left++; right--; } return true; } int main() { string input; cout << "请输入一个字符串: "; getline(cin, input); if (isPalindrome(input)) { cout << "是回文字符串" << endl; } else { cout << "不是回文字符串" << endl; } return 0; } ``` 从字符串的开头或末尾开始,逐步向中间扩展。 比较扩展过程中的字符,如果所有字符都相等,则该字符串是回文字符串;否则,不是回文字符串。 ```cpp include include using namespace std; bool isPalindrome(const string& s) { int left = 0; int right = s.size() - 1; while (left < right) { if (s[left] != s[right]) { return false; } left++; right--; } return true; } int main() { string input; cout << "请输入一个字符串: "; getline(cin, input); if (isPalindrome(input)) { cout << "是回文字符串" << endl; } else { cout << "不是回文字符串" << endl; } return 0; } ``` 这两种方法都可以有效地判断一个字符串是否为回文字符串。选择哪种方法取决于具体的需求和编程风格。中心扩展法