zoukankan      html  css  js  c++  java
  • 简单数据结构(四)栈和队列的简单应用

         编程判断一个字符串是否是回文。回文是指一个字符序列以中间字符为基准两边字符完全相同,如字符序列“ ACBDEDBCA”是回文。

         算法思想:判断一个字符序列是否是回文,就是把第一个字符与最后一个字符相比较,第二个字符与倒数第二个字符比较,依次类推,第 i 个字符与第 n-i个字符比较。如果每次比较都相等,则为回文,如果某次比较不相等,就不是回文。因此,可以把字符序列分别入队列和栈,然后逐个出队列和出栈并比较出队列的字符和出栈的字符是否相等,若全部相等则该字符序列就是回文,否则就不是回文。

    程序实现:

    static void Main(string[] args)
            {
                string str = Console.ReadLine(); //保存输入的字符
                Stack<char>stack=new Stack<char>(); //新建一个栈
                Queue<char>queue=new Queue<char>(); //新建一个队列
    
                for (int i = 0; i < str.Length; i++) //让每一个字符分别入栈 入队列
                {
                    stack.Push(str[i]);
                    queue.Enqueue(str[i]);
                }
                bool isHui = true; //定义一个标志为 判定它是否是
                while (stack.Count > 0)
                {
                    if (stack.Pop() != queue.Dequeue()) //分别出栈 出队列 判断二者是否相等
                    {//栈是从尾巴开始出  队列是从头开始出 所以可以达到检测是否回文
                        isHui = false;
                        break;
                    }
                }
                Console.WriteLine("是否是回文字符串:" + isHui);
                Console.ReadKey();
            }

    结果:

    image

    image

     

  • 相关阅读:
    关于git的简单使用
    手机设备上调试接口,查看错误信息
    用after伪类清除浮动
    js字母大小写转换方法
    使用淘宝 NPM 镜像
    JS判断类型
    JS判断客户端是手机还是PC的2个代码
    微信小程序 WebSocket
    服务器安全管理
    Linux下禁止ping最简单的方法
  • 原文地址:https://www.cnblogs.com/moguwang/p/5259551.html
Copyright © 2011-2022 走看看