0
이중 X 앞에 작은 x가있는 경우 반복적으로 "XX"가 문자열에 몇 개 있는지 계산해야합니다. 내가 뭘 잘못하고 있는지 잘 모르겠다. 내가 보인다 작업 모두를 가지고 있지만, 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));
}
}
의 계산 점점 계속 : 나는 0UPDATE가 계속, 가장 먼저 반환에 갇히지 것 같다
동일한 숙제? http://stackoverflow.com/q/39758831/2710704 – Tokazio
문자열이 "XXX"(1 또는 2) 인 경우 반환 값은 무엇입니까? 다른 말로하면, 당신은 겹치는 "XX"를 세어야합니까? 그렇다면'count'를 재귀 적으로 호출 할 때 위치 인덱스 ('substring'의 인수)를 줄이십시오. –
'XX'가 보이지 않는 한 두 명씩하지 마십시오. 문자가'x'인지 확인하십시오. 그럴 경우 다음 호출을 위해 문자를 잘라냅니다. 그것이'X' 인 경우,'XX'인지보기 위해 다음 것을 확인하십시오. 그럴 경우 '1'을 추가하십시오. 그렇지 않으면 다음 호출에서 값을 리턴하십시오. – dasblinkenlight