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