项链问题
package ojtest;

import java.util.Scanner;

public class Sohu1 {
public static int[] exist;
public static boolean valid(){
for(int i=0;i<exist.length;i++)
if(exist[i]<=0)
return false;
return true;
}
public static void add(char c){
if((c-'A')>=0&&('E'-c)>=0)
exist[c-'A']++;
}
public static void remove(char c){
if((c-'A')>=0&&('E'-c)>=0)
exist[c-'A']--;
}
public static int getmax(String str){
char[] chars=str.toCharArray();
int n=chars.length/2;
int s=0,e=0,min=n;
for(;e<chars.length;){
if(!valid())
add(chars[e++]);
else{
min=Math.min(min, e-s);
remove(chars[s++]);
}
}
while(valid()){
min=Math.min(min, e-s);
remove(chars[s++]);
}
return n-min;
}

public static void main(String[] args) {
Scanner input=new Scanner(System.in);
String str;
while(input.hasNextLine()){
str=input.nextLine();
exist=new int[5];
System.out.println(getmax(str+str));
}

}

}