Str中的char的递归计数-Java

时间:2019-02-02 19:35:35

标签: java string recursion

人 我在某些基本问题上遇到了问题。对于下面的问题,我有一个建议的解决方案,但我不明白countX == str.substring(1)的静态参数应该如何搜索整个String,该参数是静态1(? !?!):

   public int countX(String str) {
    if (str.length() == 0) return 0;
    if (str.charAt(0) == 'x') return 1 + countX(str.substring(1));
    return countX(str.substring(1));
}

相反,我在寻找解决方案之前就想到了这种解决方案,但无法弄清楚如何识别子字符串中最右边的char以便与搜索到的char'x'进行比较(第3行)

 public int countX(String str) {
  if (str.length()>0) {
    if (str.charAt(str.substring(str.length()-1) == 'x'))
      return countX (str.substring(str.length()-1)) + 1;
    else
      return countX (str.substring(str.length() -1)
  }
  else
    return 0;
}

任何建议为我关于第一溶液无知和我的第二错误?预先感谢

1 个答案:

答案 0 :(得分:0)

让我解释第一溶液。想法是将字符串分成第一个字符和其余字符。

  • 如果第一个字符是一个X我们要1添加到计数,并继续递归。
  • 如果它不是一个X,我们必须添加什么,继续递归。
  • 其余:让我们再次将其拆分为第一个字符和其余字符(又名递归)

要还捕获一个空字符串的情况下,将输入的长度被首先检查。如果长度为0,则x的计数是零。