• 回文判断(一个栈是不是回文)


    1、判断一个栈是不是回文?

    思路:根据栈的特性,可以将字符串全部压入栈,再依次将各个字符出栈,从而得到原字符串的逆置串,将逆置串中的各个字符分别和原字符串中各个字符进行比较,如果完全一致,则为回文串。

    #include<iostream>
    #include<stack>
    #include<cstring>
    using namespace std;
    
    int main()
    {
        stack<char> s1;
        char str[]="abdsdba";
        //cin>>str;
        cout<<strlen(str)<<endl;
        for(int i=0;i<strlen(str);i++)
            s1.push(str[i]);
        //while(!s1.empty())
        for(int i=0;i<strlen(str);i++)
        {
              int x=s1.top();
              s1.pop();
            if(x!=str[i])
            {
                cout<<"不是回文。"<<endl;
                return 0;    
            }                    
        }
        cout<<"回文数。"<<endl; 
        return 0;
    }

     下面代码使用自己创建的栈来实现:

    #include <iostream>  
    using namespace std;  
    typedef struct{  
          
        char data[1000];  
        int top;  
    }Stack;  
      
    void Init_stack(Stack *s)  
    {  
          
        s->top=0;  
    }  
    int Push_stack(Stack *s,char x)  
    {  
          
        s->data[s->top]=x;  
        s->top++;  
        return 1;  
    }  
    int Pop_stack(Stack *s,char *x)  
    {  
          
        *x=s->data[s->top-1];  
        s->top--;  
        return 1;  
          
    }  
      
    int main(int argc, char *argv[])  
    {  
        char data[1000];  
        int i,j;  
        Stack s;  
        char x;  
        Init_stack(&s);  
        cin>>data;  
        for(i=0;i<strlen(data);i++)  
        {  
              
            Push_stack(&s,data[i]);  
              
        }  
          
        for(i=0;i<strlen(data);i++)  
        {  
            Pop_stack(&s,&x);  
              
            if(data[i]!=x)  
            {  
                  
                cout<<"不是回文数"<<endl;  
                return 0;  
            }  
        }  
        cout<<"回文数"<<endl;  
        return 0;  
    }  
  • 相关阅读:
    文件下载并删除
    程序输出
    什么是并发
    跨站脚本攻击为什么要过滤危险字符串
    正则表达式——极速入门
    输出的为X= 1 ,Y = 0;
    Eclipse+MyEclipse安装及环境配置
    J2EE有三个开发环境级。
    TCP和UDP的区别
    asp.net2.0导出pdf文件完美解决方案(转载)
  • 原文地址:https://www.cnblogs.com/wft1990/p/6874207.html
Copyright © 2020-2023  润新知