Codeforces #23 A "You're Given a String..."

問題:http://codeforces.com/contest/23/problem/A

import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

public class A {
	public static void main(String[] args) throws Exception{
		String str = new Scanner(System.in).next();
		Set<String> set = new HashSet<String>();
		String max = "";
		for(int l = 1; l < str.length(); ++l){
			for(int i = 0; i < str.length()-l; ++i){
				String substr = str.substring(i, i+l);
				if(!set.contains(substr) && str.indexOf(substr) != str.lastIndexOf(substr)){
					set.add(substr);
					if(substr.length() > max.length()){
						max = substr;
					}
				}
			}
		}
		System.out.println(max.length());
	}
	
}