0
我應該遞歸地計算字符串中有多少「XX」,如果在雙X前面有一個小的X,它不應該被計數。我不確定我做錯了什麼;我似乎被卡住的第一個回報,我不斷收到0遞歸計算字符串中的字符串java
更新:我所擁有的一切工作似乎,但XXXXXX不斷得到計爲1,而不是2
public static int count(String s) {
if ((s.length() < 2))
return 0;
int counter = 0;
if (s.charAt(0)== 'x')
{
if (s.substring(0, 2).equals("xX"))
return count(s.substring(3));
}
if (s.substring(0, 2).equals("XX")) {
return 1 + count(s.substring(3));
}
else
return counter + count(s.substring(1));
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner kb = new Scanner(System.in);
System.out.println("Enter a String: ");
String s = kb.nextLine();
System.out.println(count(s));
}
}
同樣的功課? http://stackoverflow.com/q/39758831/2710704 – Tokazio
如果字符串是「XXX」(1或2),應該返回什麼?換句話說,你是否必須計算重疊的「XX」?如果是這樣,遞歸調用'count'時減少位置索引('substring'的參數)。 –
除非你看到'XX',否則不要過兩。檢查字符是否爲「x」,如果是,則將其截斷以供下一次調用。如果它是'X',請檢查下一個是否是'XX'。如果是,請添加'1';否則,返回下一個調用的值。 – dasblinkenlight