c#控制台用于回文字符串的应用程序

本文关键字:应用程序 字符串 回文 控制台 用于 | 更新日期: 2023-09-27 18:09:59

public static int isPalindrome(char[] String)
{
     if (String.Length == 0 || String.Length == 1)
         return 1;
     if (String[0] != String[String.Length - 1])
         return 0;
     return Convert.ToUInt32(isPalindrome(String);
}

我不能使它作为实例方法,我得到的问题,所以请帮助我如何使其为动态

c#控制台用于回文字符串的应用程序

应该可以:

    public static int isPalindrome(char[] String)
    {
        string smallerString = String.ToString().Substring(1, String.Length - 1);
        if (String.Length == 0 || String.Length == 1)
             return 1;
         if (String[0] != String[String.Length - 1])
             return 0;
         return Convert.ToInt32(isPalindrome(smallerString.ToCharArray()));
    }

无需更改类型和返回值

public static int isPalindrome(char[] str)
{
    if (str.Length == 0 || str.Length == 1)
        return 1;
    if (str[0] != str[str.Length - 1])
        return 0;
    return isPalindrome(str.Skip(1).Take(str.Length-2).ToArray());
}

您一次又一次地将相同的值传递给isPalindrome。您可以尝试如下操作(注意,在下面的示例中我使用了string):

private static bool isPalindrome(string s)
{
    if(s.Length == 1 || s.Length == 0)
        return true;
    if(s[0] != s[s.Length -1])
        return false;
    return isPalindrome(s.SubsString(1, s.Length -2));
}

我认为这很容易实现。

public static bool IsPalindrome(String text)
{
    if(string.IsNullOrWhiteSpace(text))
           return false;
    char[] arr = text.ToCharArray();
    Array.Reverse(arr);
    var reversedText = new string(arr);         
    return string.Equals(text, reversedText, StringComparison.OrdinalIgnoreCase);
}