题目是这样的,哪位帮忙指点下吧,谢谢下面三题类似,解答时请考虑代码的重用性。
1. 10进制数字按列输入,如果有相邻数位增加,则称这个增加相邻列为增加部分列,求输入序列中最长的增加部分列。
2. 2进制数字按列输入,列中相同的连续列称为同值部分,求输入2进制列中最长的同值部分。
3. 英文字母按列输入,列中相同文字(区分大小写)连续部分称为同字部分,求输入文字列中最长的同字部分

解决方案 »

  1.   

    先定一個最大長度 maxLen 變數,一個目前長度 currentLen。
    初始為0
    然後循環 遇循序增加(或相同值),則currentLen++;
    增加(或相同)中斷,判斷 maxLen和currentLen哪個大,maxLen記錄大的。
    結束後再判斷一次 maxLen和currentLen哪個大,大的就是答案。
      

  2.   

    程序已经调试过:
    import java.awt.List;
    import java.util.ArrayList;public class MaxRepeatStr { /**
     * @param args
     */
    public static void main(String[] args) {
       String src="1233345676868344888848444444944499999";
      ArrayList<String>repeats= findMaxRepeated(src);
      String maxinfo=maxLength(repeats);
      System.out.println(maxinfo); }
    static ArrayList<String> findMaxRepeated(String source){
    char repeatedchar = 0;
    String repeatedstr = "";
    ArrayList<String> result=new ArrayList<String>();
    for(char item : source.toCharArray()){
    if(item==repeatedchar){
    repeatedstr+=item;
    }
    else 
    {
    repeatedchar=item;
    if(repeatedstr!=""){
    result.add(repeatedstr);
        repeatedstr="";
    }


    }
    }

    return result;
    }
    static String maxLength(ArrayList<String>list){
    int maxlen=0;
    String maxstr="";
    for(String s:list){
    if(s.length()>maxlen){
    maxlen=s.length();
    maxstr=s;
    }
    }
    return "最长串是:"+maxstr+",长度="+maxlen;

    }}
      

  3.   

    坐等高手,刚看到JAVA的接口 
    一堆完全解耦,适配器设计模式的什么还没完全理解。