ニンニク客-最長重複しないサブストリング(文字列)


文字列を指定すると、最も長いサブ列が見つかり、サブ列に重複する文字がないことが要求されます.
例:
文字列abcabcbbの重複文字を含まない最長サブ列はabcであり、長さは33である.
一方、bbbbbbの重複文字を含まない最長サブ列はbであり、長さは11である.
入力フォーマット
入力には複数の行が含まれており、各行は終了子に遭遇するまで100100を超えない出力に対応します.行ごとに文字列sが順次入力されます.
出力フォーマット
重複文字を含まない最長サブストリングの長さを出力します.
サンプル入力
hchzvfrkmlnozjk

サンプル出力
11
コードは次のとおりです.
import java.util.*;
/**
 *  hash     ,                   ( hash        0)
 * 
 */
public class Main{

	static int num ;
	static int hash[] = new int[150];
	static int max = -1;   //      
	
	
	public static void main(String [] args) {
		
		Scanner in = new Scanner (System.in);
		
		while(in.hasNext())//        
		{
			//            ,       
			Arrays.fill(hash, 0);  //hash       0 
			num = 0;    //           0
			max = -1;   //          
			//       
			String str = in.nextLine();
			
			//      
			/**           ,                ,
			 *                ,     hash             ,      1,             
			 *         。
			 * */
			for(int i=0;i 1)
						{
							num = num-1;  //             
							break;
						}
					}
					else
						break;
				}
				Arrays.fill(hash, 0);  //            ,            
				if(num > max)
				{
					max = num;
				}
				num = 0;  //    hash
			}
			System.out.println(max);
		}
	}
}