栈回文串

2021-01-11  本文已影响0人  壹顾倾城
/********************************
 * 程序名称:栈回文串
 * 作    者:tiaya@qq.com
 * 来    源:B栈Tracy老师
 * 开发时间: 2020 - 1 - 11
 *******************************/
#include <iostream>

using namespace std;

string s;
//find()
bool find(string a) {
    int la, mid,top, next;
    la = a.length();     //s.size()
    mid = la / 2;

    top = -1;

    if(la % 2 == 0)
        next = mid;
    else {
        next = mid + 1;
    }

    for(int i=0; i < mid; i++) {
        top ++;
        s[top] = a[i];    //push
    }
    
    for(int i=next; i<la; i++) {
        if(a[i] == s[top]) {
            top --;
        }
    }

    if (top == -1) {
        return true;
    } else {
        return false;
    }
}

/*main()*/
int main(int argc, char const *argv[])
{
    /* code */
    string str;
    cout << "输入字符串:";
    cin >> str;
    if (find(str)) {
        cout << "Yes" << endl;
    } else {
        cout << "No" << endl;
    }

    return 0;
}

测试1:

Please input string:helloello
No

测试2:

Please input string:hellolleh
Yes
上一篇下一篇

猜你喜欢

热点阅读