标签:
编程判断一个字符串是否是回文。回文是指一个字符序列以中间字符为基准两边字符完全相同,如字符序列“ 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(); }
结果:
标签:
原文地址:http://www.cnblogs.com/moguwang/p/5259551.html