#include <stack>
int main()
{
stack<char> s;
string str = "aaa";
int sz = str.size() % 2;//判断是奇数个还是偶数个
int mid = str.size() / 2;//找出中间位置
if (sz == 0) {//如果是偶数个
for (int i = 0; i < mid; i++) {
s.push(str.at(i));//将前一半字符入栈
}
for (int i = 0; i < mid; i++) {//依次出栈与后一半对比
if (s.top() != str[mid + i])
break;
s.pop();
}
if (s.empty())
cout << "是回文" << endl;
else
cout << "不是回文" << endl;
}
else {//如果是奇数个
for (int i = 0; i < mid; i++) {
s.push(str.at(i));
}
for (int i = 1; i <= mid; i++) {//跳过中间一个
if (s.top() != str[mid + i])
break;
s.pop();
}
if (s.empty())
cout << "是回文" << endl;
else
cout << "不是回文" << endl;
}
}
成长随心记17(判断字符串回文)(栈)
最新推荐文章于 2024-07-25 23:49:52 发布