招銀三面手引き裂きコード問題(文字列連続サブストリング)

1466 ワード

import java.util.*;

/*    ,             
*            
*         ,     */

public class continuationsubstring {

        public static void main(String[] args) {
            LinkedList list = new LinkedList();
            List res = getRes("dad", list);
            System.out.println(res);
        }

        public static List getRes(String str, List list) {
            int count = 1;//count           ,           1
            char ch = str.charAt(0);
            for (int i = 0; i < str.length(); i++) {
                //            ch   count++
                while (++i < str.length() && str.charAt(i) == ch) {
                    count++;
                }
                //            ,    1       ,  list 
                if (count > 1) {
                    StringBuilder builder = new StringBuilder();
                    for (int j = 0; j < count; j++) {
                        builder.append(ch);
                    }
                    list.add(builder.toString());
                }
                //      while  ,               
                //            ch i count  
                if (i < str.length()) {
                    ch = str.charAt(i);
                    count = 1;//  count    1,            1 
                    i--;//  while      ++i,      
                }
            }
            return list;
        }
    }