矿泉水的gravatar头像
矿泉水 2014-04-13 11:44:28

阿里的一道java面试题(打印字符串里面的所有连续子串)

/**
  * 打印遗传字符串中所有的连续子串
  * @param var
  */
 private static void printContinueString(String var,StringBuilder sbd)
 {
  char[]c=var.toCharArray();
  char first='\0';
  sbd.append(c[0]);
  int i=1;
  boolean f=false;
  for(;i<c.length;i++){
   first=c[i-1];
   //在连续的情况下假如字符串累加器里面
   if(first-c[i]==-1)
    sbd.append(c[i]);
   else{
    if(sbd.length()>=2)
    {
       if(f)
       printAll((c[i-sbd.length()-1]+sbd.toString()).toCharArray(),0);
       else
    printAll(sbd.toString().toCharArray(),0);
       sbd.delete(0, sbd.length());
       f=true;
    }
   }
  
  
  }
  printAll((c[i-sbd.length()-1]+sbd.toString()).toCharArray(),0);
 }

 
 
 
 private  static void printAll(char []c,int index){
  if(index==c.length)
   return;
  String s="";
 
  for(int i=index;i<c.length;i++){
   s+=c[i];
   System.out.println(s);
   
  }
  printAll(c,index+1);
 }
 public static void main(String[] args) {
  
  printContinueString("abcd135efgh4xyz",new StringBuilder());
  //printLxString("12345---abcd-----efgh--opqrstuvwxyz",new StringBuilder());
  }

打赏

顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友