用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();