zoukankan      html  css  js  c++  java
  • 回文判断(一个栈是不是回文)

    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;  
    }  
  • 相关阅读:
    el-checkbox
    文件上传优化
    二叉树的建立
    二叉树的遍历算法
    两个二进制数多少个位(bit)不同
    二维矩阵置零
    search-a-2d-matrix(二维矩阵查找)
    Ubuntu16.04安装配置Eclipse 以及opencv的使用
    树莓派 自身摄像头的opencv调用
    树莓派3上安装Qt5
  • 原文地址:https://www.cnblogs.com/wft1990/p/6874207.html
Copyright © 2011-2022 走看看