LINQ:检查字符串是否是回文?
我想使用 Linq 检查字符串是否是回文。
更新:
我不想使用反向功能。
I want to check whether a string is palindrome or not using Linq.
Updated:
I d'nt want to use Reverse function.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
字符串
使用它来反转取自 这个问题
您可以执行类似
“注意这不会考虑标点符号和空格问题”的操作。
Using this to reverse the string
taken from this question
you could do something like
Note this won't take in to consideration punctuation and spacing issues.
我突然想到有一个替代的 LINQ 解决方案不需要反转字符串。
与所提出的其他解决方案一样,这假设有一个精确回文匹配。它不会忽略空格、标点符号、大小写等。
值得注意的是,该解决方案使用 LINQ 来实现我在下面的原始答案中展示的相同算法。
原始答案:
我不知道你为什么要使用 LINQ 来实现这一点。在我看来,如果您只是为其创建一个方法,那么在代码中执行此操作将会更加高效,并且可读性会更高。
您可以使用与反转字符串相同的逻辑:
It occurs to me that there's an alternate LINQ solution that doesn't require reversing the string.
As with the other solutions presented, this assumes an exact palindromic match. It doesn't ignore spaces, punctuation, casing, etc.
It's interesting to note that this solution uses LINQ to implement the same algorithm I showed below in my original answer.
Original answer:
I don't know why you'd want to use LINQ for this. Doing it in code is going to be much more efficient and, in my opinion, quite a bit more readable if you just create a method for it.
You can use the same logic that's used to reverse a string:
您可以使用 IEnumerable.SequenceEquals 方法来检查字符串是否为回文:
You could use
IEnumerable<T>.SequenceEquals
method to check if a string is palindrome:现在,这需要 2N 步执行。您可以通过简单的更改将其减少一半:
Now, this executes in 2N steps. You can get it down to half that with a simple change:
在 C# 中,我们编写一个简单的回文检查
它包含一个程序来反转字符串并检查输入的字符串是否是回文。
In C# we write A simple palindrome check
It contains a program to reverse a string and to check whether a Entered string is palindrome or not.
一个程序,它将输入作为字符串并检查它是否是回文或
不是。
}
A program which takes input as string and check if it is palindrome or
not.
}