## Problem:

Given a string, compute recursively (no loops) the number of "11" substrings in the string. The "11" substrings should not overlap.

count11("11abc11") → 2
count11("abc11x11x11") → 3
count11("111") → 1

## Solution:

public int count11(String str) {
if (str.length() < 2) return 0;
if (str.substring(0,2).equals("11"))
return 1 + count11(str.substring(2));
else
return count11(str.substring(1));
}

#### 4 comments :

1. public int count11(String str) {
if (str.length()<2)
return 0;

int count = (str.substring(0,2).equals("11")) ? 1 : 0;
int jump = (count==1) ? 2 : 1;

return count + count11(str.substring(jump));
}

2. public int count11(String str) {
if(str.length() <= 1){
return 0;
}
return (str.charAt(0) == '1' && str.charAt(1) == '1')?
1 + count11(str.substring(2)): count11(str.substring(1));
}

3. public int count11(String str) {
if(str.length() <= 1){
return 0;
}
if(str.charAt(0) == '1' && str.charAt(1) == '1'){
return 1 + count11(str.substring(2));
}
return count11(str.substring(1));
}

4. public int count11(String str) {
if (str.contains("11")) return 1 + count11(str.substring(str.indexOf("11")+2));
else return 0;
}