andy6804tw
7/28/2016 - 8:56 AM

http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?a=3467 這題要注意到尾部假如還是一樣的話跳出迴圈後還是要再判斷max 例如:122333 程式25行會進入判斷最後一個數字是否也是最長數列

http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?a=3467

這題要注意到尾部假如還是一樣的話跳出迴圈後還是要再判斷max 例如:122333 程式25行會進入判斷最後一個數字是否也是最長數列

import java.util.*;

public class Main {

	public static void main(String[] args) {
		Scanner scn = new Scanner(System.in);
			String str=scn.next();
			char arr[]=str.toCharArray(),c=arr[0];
			int a=0,b=0,count=1,max=0,i=1;
			for(i=1;i<arr.length;i++){
				if(arr[i]==c){
					count++;
					continue;
				}
				else{
					if(max<count){
						max=count;
						a=i-count;
						b=i;
					}
					count=1;
					c=arr[i];
				}
			}
			if(c==arr[i-1]){
				if(max<count){
					a=i-count;
					b=i;
				}
			}
			System.out.println(str.substring(a,b));
	}
		/* 
    題目:[C_ST54-中] 最長相同數字子數列
    作者:1010
    時間:西元 2016 年 7 月 */
}