您的位置:首页 > 编程语言 > C语言/C++

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

2016-02-03 14:37 549 查看
#include <iostream>

#include <string>

#include <stack>

using namespace std;

int main()

{

    stack<char> st1;

    stack<char> st2;

    stack<char> st3;

    string str;

    cout << "enter the string: " << endl;

    getline(cin,str);

    int len = str.length();

    int i =0;

    while(i<len/2){

        st1.push(str[i]);

        i++;

    }

    if(len%2==1)

        i++;

    while(i<len){

        st2.push(str[i]);

        i++;

    }

    while(!st2.empty()){

        char ch = st2.top();

        st3.push(ch);

        st2.pop();

    }

    while(!st1.empty()){

        if(st1.top()==st3.top()){

            st1.pop();

            st3.pop();

        }

        else{

            cout <<"the string "<<str<<" is not palindrome\n";

            return 0;

        }

    }

    cout <<"the string "<<str<<" is palindrome\n";

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: