以下是使用栈判断字符串是否为回文串的 C++ 代码:\n\nc++\n#include <iostream>\n#include <stack>\n#include <string>\n\nusing namespace std;\n\nbool isPalindrome(string s) {\n stack<char> stk;\n \n // 将字符串的一半字符入栈\n int mid = s.length() / 2;\n for (int i = 0; i < mid; i++) {\n stk.push(s[i]);\n }\n \n // 根据字符串长度的奇偶性确定比较的起始位置\n int start = mid + (s.length() % 2 == 0 ? 0 : 1);\n \n // 依次比较入栈的字符与字符串的后半部分字符是否相等\n for (int i = start; i < s.length(); i++) {\n if (stk.empty() || stk.top() != s[i]) {\n return false;\n }\n stk.pop();\n }\n \n return true;\n}\n\nint main() {\n string s;\n cout << "输入一个字符串:";\n cin >> s;\n \n bool result = isPalindrome(s);\n \n if (result) {\n cout << "是回文串" << endl;\n } else {\n cout << "不是回文串" << endl;\n }\n \n return 0;\n}\n\n\n该代码使用了一个栈来判断字符串是否为回文串。首先,将字符串的一半字符入栈。然后,根据字符串长度的奇偶性确定比较的起始位置。最后,依次比较入栈的字符与字符串的后半部分字符是否相等。如果栈为空且比较过程中没有发现不相等的字符,则字符串是回文串。

C++ 使用栈判断字符串是否为回文串

原文地址: https://www.cveoy.top/t/topic/pPln 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录