上一篇
如何在C中实现高效的回文检测方法?
- 行业动态
- 2025-01-27
- 5
### C#实现回文检测方法:该文介绍了C#中实现 回文检测的多种方法,包括使用递归、栈和队列等数据结构。通过具体代码示例,展示了如何判断字符串或数字是否为回文,并提供了详细的算法实现及运行结果分析。
在C#中实现回文检测的方法有多种,以下是几种常见的方法:
方法一:双指针法
1、原理:设置两个指针,一个从字符串的起始位置开始,另一个从字符串的末尾位置开始,依次向中间移动,比较所指向的字符是否相等,如果始终相等,则字符串为回文;如果有任何不相等的情况,则字符串不是回文。
2、代码示例
using System; class Program { static void Main() { Console.WriteLine("请输入一个字符串:"); string str = Console.ReadLine(); bool isPalindrome = IsPalindrome(str); if (isPalindrome) { Console.WriteLine("这是回文"); } else { Console.WriteLine("这不是回文"); } } private static bool IsPalindrome(string str) { int left = 0; int right = str.Length 1; while (left < right) { if (str[left] != str[right]) { return false; } left++; right--; } return true; } }
方法二:栈法
1、原理:将字符串的前半部分压入栈中,然后依次弹出与字符串的后半部分进行比较,可以判断字符串是否为回文。
2、代码示例
using System; using System.Collections.Generic; class Program { static void Main() { Console.WriteLine("请输入一个字符串:"); string str = Console.ReadLine(); bool isPalindrome = IsPalindromeWithStack(str); if (isPalindrome) { Console.WriteLine("这是回文"); } else { Console.WriteLine("这不是回文"); } } private static bool IsPalindromeWithStack(string str) { Stack<char> stack = new Stack<char>(); for (int i = 0; i < str.Length / 2; i++) { stack.Push(str[i]); } for (int i = (str.Length + 1) / 2; i < str.Length; i++) { if (str[i] != stack.Pop()) { return false; } } return true; } }
方法三:反转字符串法
1、原理:将字符串反转,然后与原字符串进行比较,如果相等则是回文,否则不是回文。
2、代码示例
using System; class Program { static void Main() { Console.WriteLine("请输入一个字符串:"); string str = Console.ReadLine(); bool isPalindrome = IsPalindromeByReverse(str); if (isPalindrome) { Console.WriteLine("这是回文"); } else { Console.WriteLine("这不是回文"); } } private static bool IsPalindromeByReverse(string str) { char[] charArray = str.ToCharArray(); Array.Reverse(charArray); string reversedStr = new string(charArray); return str == reversedStr; } }
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/401381.html