1、回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)
时间: 2023-05-13 10:06:16 浏览: 86
程判断输入的一串字符是否为“回文”。所谓“回文”是指顺序读和逆序读都一样的字符串。如:“12321”和“abcdcba”都是回文。
当然,我可以为您提供一个判断回文的算法。首先,我们将字符向量的一半压入栈中,然后依次弹出栈中的字符与字符向量的另一半进行比较。如果所有字符都相同,则该字符向量是回文,否则不是回文。
以下是示例代码:
bool isPalindrome(string s) {
stack<char> st;
int len = s.length();
for (int i = 0; i < len / 2; i++) {
st.push(s[i]);
}
for (int i = (len + 1) / 2; i < len; i++) {
if (s[i] != st.top()) {
return false;
}
st.pop();
}
return true;
}
请注意,这只是一个简单的算法示例,实际上还有更高效的算法可以用来判断回文。
阅读全文