codingbat:recursion-1:3



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));     
    }
 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值