public String pairStar(String str) {
if(str.length()<2)
return str;
if(str.charAt(0)==str.charAt(1))
return str.substring(0,1)+"*"+pairStar(str.substring(1,str.length()));
else
return str.substring(0,1)+pairStar(str.substring(1,str.length()));
}
public String endX(String str) {
if(str.length()<2)
return str;
if(str.substring(0,1).equals("x"))
return endX(str.substring(1,str.length()))+"x";
else
return str.substring(0,1)+endX(str.substring(1,str.length()));
}
public int countPairs(String str) {
if(str.length()<3)
return 0;
if(str.charAt(0)==str.charAt(2))
return 1+countPairs(str.substring(1,str.length()));
else
return countPairs(str.substring(1,str.length()));
}
public int countAbc(String str) {
if(str.length()<3)
return 0;
if(str.substring(0,3).equals("abc")||str.substring(0,3).equals("aba"))
return 1+countAbc(str.substring(2,str.length()));
else
return countAbc(str.substring(1,str.length()));
}
public int count11(String str) {
if(str.length()<3){
if(str.equals("11"))
return 1;
else
return 0;
}
if(str.substring(0,2).equals("11"))
return 1+count11(str.substring(2,str.length()));
else
return count11(str.substring(1,str.length()));
}
public String stringClean(String str) {
if(str.length()<2)
return str;
if(str.charAt(0)==str.charAt(1))
return stringClean(str.substring(1,str.length()));
else
return str.substring(0,1)+stringClean(str.substring(1,str.length()));
}
public int countHi2(String str) {
if(str.length()<3)
{
if(str.equals("hi"))
return 1;
else
return 0;
}
if(str.substring(0,3).equals("xhi"))
return countHi2(str.substring(3,str.length()));
else if(str.substring(0,2).equals("hi"))
return 1+countHi2(str.substring(2,str.length()));
else
return countHi2(str.substring(1,str.length()));
}
public String parenBit(String str) {
if(str.substring(0,1).equals("(")&&str.substring(str.length()-1,str.length()).equals(")"))
return str;
else {
if(str.substring(0,1).equals("("))
return parenBit(str.substring(0,str.length()-1));
else
return parenBit(str.substring(1,str.length()));
}
}
public boolean nestParen(String str) {
if(str.length()<3){
if(str.equals("()")||str.equals(""))
return true;
else
return false;
}
else{
if(str.substring(0,1).equals("(")&&str.substring(str.length()-1,str.length()).equals(")"))
return nestParen(str.substring(1,str.length()-1));
else
return false;
}
}
public int strCount(String str, String sub) {
if(str.length()<sub.length())
return 0;
if(str.equals(sub))
return 1;
else
{
if(str.substring(0,sub.length()).equals(sub))
return 1+strCount(str.substring(sub.length(),str.length()),sub);
else
return strCount(str.substring(1,str.length()),sub);
}
}
public boolean strCopies(String str, String sub, int n) {
if(n<=0)
return true;
if(str.length()<sub.length())
return false;
if(str.substring(0,sub.length()).equals(sub))
return strCopies(str.substring(1,str.length()),sub,n-1);
else
return strCopies(str.substring(1,str.length()),sub,n);
}
public int strDist(String str, String sub) {
if(str.length()<sub.length())
return 0;
if(str.equals(sub))
return str.length();
if(!str.substring(0,sub.length()).equals(sub))
return strDist(str.substring(1,str.length()),sub);
else
{
if(str.substring(str.length()-sub.length()).equals(sub))
return str.length();
else
return Math.max(strDist(str.substring(sub.length(),str.length()),sub),
strDist(str.substring(0,str.length()-1),sub));
}
}