编码蝙蝠和日食的结果不同

时间:2017-02-19 18:03:45

标签: java eclipse

我正在为Java编写蝙蝠练习,我遇到了一个问题,其中eclipse返回正确的值而编码蝙蝠环境没有。 我正在处理的问题是:

给定一个字符串和一个非空的子字符串sub,如果字符串中至少有n个副本出现在某处,可能会重叠,从而递归计算。 N将是非负面的。

strCopies("catcowcat", "cat", 2) → true
strCopies("catcowcat", "cow", 2) → false
strCopies("catcowcat", "cow", 1) → true

对于案例strCopies(" iiijjj"," i",3)我的代码在编码bat中运行返回false,而在eclipse中它返回true。对于所有其他情况,我的代码在eclipse中返回与编码bat相同的值。由于我已经在编码蝙蝠环境中经历了莫名其妙的行为,这可能是一个错误吗?

我通过以下方式调用方法:

System.out.println(p.strCopies("iiijjj", "i", 3));

我的代码是:

int count;
public boolean strCopies(String str, String sub, int n) {
 if (str.indexOf(sub) != -1) {
   count++;
   strCopies(str.substring(str.indexOf(sub)+1), sub, n);
 }
 if (count == n) {
   return true;
 }
 else {
   count = 0;
 return false;
 }
}

1 个答案:

答案 0 :(得分:1)

这是一种可能的解决方案

public boolean strCopies(String str, String sub, int n) {

  if(str.isEmpty() && n > 0 ) return false;
  if(str.isEmpty() && n == 0 ) return true;

  if( str.length() >= sub.length() && 
  str.substring(0,sub.length()).equals(sub) ){
    return strCopies( str.substring(1) , sub , n-1 );
  }

  return strCopies(str.substring(1) , sub , n);

}