【问题标题】:c# console application program for palindrome stringc# 回文字符串的控制台应用程序
【发布时间】:2015-11-21 13:57:40
【问题描述】:
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);
}

我无法将其作为实例方法我遇到问题,所以请帮助我如何使其成为动态

【问题讨论】:

  • 我希望这是递归函数
  • 我尝试了递归函数,但输入参数为字符串而不是 char[] public static int isPalindrome(string p) { if (p.Length == 1 || p.Length == 0) return 1 ;如果 (p[0] != p[p.Length - 1]) 返回 0;返回 isPalindrome(p.Substring(1, p.Length - 2)); }
  • Palindrome check with recursion 的可能重复项

标签: c# c#-4.0


【解决方案1】:

我认为这很容易实现。

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);
}

【讨论】:

    【解决方案2】:

    您一次又一次地将相同的值传递给 isPalindrome。您可以尝试以下方法(注意我在下面的示例中使用了字符串):

    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));
    }
    

    【讨论】:

      【解决方案3】:

      不改变你的类型和返回值

      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());
      }
      

      【讨论】:

      • 如何在我想从用户那里获取输入的 INSTANCE 方法中使这个功能与动态相同,然后如何?以及如何在 main 方法中调用它
      【解决方案4】:

      这应该有效:

          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()));
          }
      

      【讨论】:

        猜你喜欢
        • 2013-01-27
        • 2017-05-28
        • 1970-01-01
        • 2021-07-05
        • 2023-01-03
        • 1970-01-01
        • 1970-01-01
        • 2012-12-17
        • 1970-01-01
        相关资源
        最近更新 更多