欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

用C#判断某字符串是否是回文数

程序员文章站 2024-03-15 08:34:59
...

如果大家学过栈和队列 应该知道这两个数据结构的输出方式是刚好相反的。

栈:先进后出,后进先出
队列:先进先出

然后我们可以通过把字符串放在栈和队列中 同时输出进行判断数据是否相同。

步骤:
1.将该字符串分别放入一个栈和一个队列中
2.同时出栈和出队列 依次判断输出的数是否相等
3.如果全部相等就是回文数 如果有一个不等就不是回文数

using System;
using System.Collections.Generic;
using System.Text;

namespace ListCode
{
    class PalindromeNumber
    {
        private Stack<char> stack = new Stack<char>();
        private Queue<char> queue = new Queue<char>();
        private bool ispalindromenumber=true;

        public PalindromeNumber(string s)
        {
            for (int i = 0; i < s.Length; i++)
            {
                stack.Push(s[i]);
                queue.Enqueue(s[i]);
            }
        }

        public void IsPalindromeNumber()
        {
            while (stack.Count > 0)
            {
                if (stack.Pop() != queue.Dequeue())
                {
                    ispalindromenumber = false;
                    break;
                }
            }

            Console.WriteLine("是否是回文数:" + ispalindromenumber);
        }
    }
}

执行结果:

            PalindromeNumber palindromeNumber = new PalindromeNumber("absba");

            palindromeNumber.IsPalindromeNumber();

用C#判断某字符串是否是回文数