检查字符串是否是回文

ank*_*kur 17 c# string palindrome

我有一个字符串作为输入,必须打破两个子串中的字符串.如果左子串等于右子串,则执行一些逻辑.

我怎样才能做到这一点?

样品:

public bool getStatus(string myString)
{

}
Run Code Online (Sandbox Code Playgroud)

示例:myString = "ankYkna",所以如果我们将它分成两个子串,它将是: left-part = "ank", right-part = "ank"(反转后).

Bal*_*nyi 69

纯娱乐:

return myString.SequenceEqual(myString.Reverse());
Run Code Online (Sandbox Code Playgroud)

  • 缺少`使用 System.Linq;` (3认同)

ion*_*den 22

public static bool getStatus(string myString)
{
    string first = myString.Substring(0, myString.Length / 2);
    char[] arr   = myString.ToCharArray();

    Array.Reverse(arr);

    string temp   = new string(arr);
    string second = temp.Substring(0, temp.Length / 2);

    return first.Equals(second);
}
Run Code Online (Sandbox Code Playgroud)

  • 这实际上不适用于标点符号和非对称空格的回文。示例:“尼克松中没有'X'。” 是回文。 (3认同)

Bal*_*nyi 15

int length = myString.Length;
for (int i = 0; i < length / 2; i++)
{
    if (myString[i] != myString[length - i - 1])
        return false;
}
return true;
Run Code Online (Sandbox Code Playgroud)


Adr*_*ode 12

使用LINQ并且远离最佳解决方案

var original = "ankYkna";
var reversed = new string(original.Reverse().ToArray());
var palindrom = original == reversed;
Run Code Online (Sandbox Code Playgroud)

  • 为了区分大小写,请添加 String.Equals(word,original,StringComparison.OrdinalIgnoreCase) (3认同)
  • 我很确定总是这样,但是当LINQ第一次出现时,人们是如此明确.我只是偶然发现了这个问题,并希望向那些遇到你坚实答案的人指出这一点. (2认同)

Ern*_*jas 6

一行代码使用 Linq

public static bool IsPalindrome(string str)  
{
    return str.SequenceEqual(str.Reverse());
}
Run Code Online (Sandbox Code Playgroud)


GAN*_*ANI 5

 public static bool IsPalindrome(string value)
        {
            int i = 0;
            int j = value.Length - 1;
            while (true)
            {
                if (i > j)
                {
                    return true;
                }
                char a = value[i];
                char b = value[j];
                if (char.ToLower(a) != char.ToLower(b))
                {
                    return false;
                }
                i++;
                j--;
            }
        }
Run Code Online (Sandbox Code Playgroud)