Google Code Jam 2006
■ このスレッドは過去ログ倉庫に格納されています
0178デフォルトの名無しさん
2006/09/20(水) 02:13:21public class FirstError {
public int firstBad(String frac){
for(int i=1;i<=frac.length();i++)if(!check(frac.substring(0, i)))return(i-1);
if(frac.matches("^[0-9]+/[1-9][0-9]*$"))return(-1);
return(frac.length());
}
boolean check(String sub){
if(!sub.matches("^0$") &&
!sub.matches("^0/$") &&
!sub.matches("^0/[1-9][0-9]*$") &&
!sub.matches("^[1-9][0-9]*$") &&
!sub.matches("^[1-9][0-9]*/$") &&
!sub.matches("^[1-9][0-9]*/[1-9][0-9]*$"))return(false);
Scanner s=new Scanner(sub);
s.useDelimiter("/");
while(s.hasNextLong())if(s.nextLong() >= (1L << 31))return(false);
return(true);
}
}
■ このスレッドは過去ログ倉庫に格納されています