zoukankan      html  css  js  c++  java
  • 烟大 2242: 回文(栈和队列)

    2242: 回文(栈和队列)

    Time Limit: 1 Sec  Memory Limit: 1000 MB

    Submit: 2  Solved: 2

    [Submit][Status][Web Board]

    Description

     假设称正读和反读都相同的字符序列为“回文”,例如,‘abba‘ 和 ‘abcba‘是回文,‘abcde‘ 和 ‘ababab‘ 则不是回文。试写一个算法判别读入的一个以‘@‘为结束符的字符序列是否是“回文”。

    Input

    abcba

    Output

    是回文

    Sample Input

    ababab

    Sample Output

    不是回文

    HINT

    Source


    Code:

     1 //与相同序列那道题差不多。将字符依次压入栈中,拿出来的时候就是倒序比较了。
     2 
     3 #include <iostream>
     4 #include <cstring>
     5 #include <stack>
     6 using namespace std;
     7 int main()
     8 {
     9     string l;
    10     while(cin>>l){
    11         int i;
    12         stack <char> s;
    13         for(i=0;i<l.length();++i)
    14             s.push(l[i]);    //将所有字符压到栈中
    15         //因为是后进先出,所以从栈中去元素的时候是倒序取出的
    16         //所以依次将栈中取出的元素和字符串从尾到头依次比较
    17         for(i=0;i<l.length();++i){
    18             if(s.top()!=l[i])
    19                 break;
    20             s.pop();    //如果相等,抛出当前元素
    21         }
    22         //因为是将字符串中字符依次压栈的,所以长度相同,不需要判断是否栈空
    23         if(i==l.length())
    24             cout<<"是回文"<<endl;
    25         else
    26             cout<<"不是回文"<<endl;
    27     }
    28     return 0;
    29 }
    View Code

    Freecode : www.cnblogs.com/yym2013

  • 相关阅读:
    1.20
    1.18
    4.16python安装
    4.15Android学习
    4.14Android学习
    4.13Android学习
    4.12Android学习
    4.11Android学习
    4.10Android学习
    4.09Android学习
  • 原文地址:https://www.cnblogs.com/yym2013/p/3255212.html
Copyright © 2011-2022 走看看