import java.util.regex.Pattern;
/* package whatever; // don't place package name! */
/* The class name doesn't have to be Main, as long as the class is not public. */
class Main {
for(int i = 0; i < 500000; i++){
isAlpha("abc123def456hig789klm000");
isAlpha("abcdefghijklmnopqrstuvwxyz");}
// for(int i = 0; i < 5000000; i++){
// isOnlyWordChars("abc123def456hig789klm000");
// isOnlyWordChars("abcdefghijklmnopqrstuvwxyz");}
// for(int i = 0; i < 5000000; i++){
// isAlpha("abc123def456hig789klm000");
// isAlpha("abcdefghijklmnopqrstuvwxyz");}
}
private static boolean isOnlyWordChars
(String s
) { char[] chars = s.toCharArray();
for (char c : chars) {
return false;
}
}
return true;
}
private static boolean isAlpha
(String str
) { if (str == null) {
return false;
}
int sz = str.length();
for (int i = 0; i < sz; i++) {
if (Character.
isLetter(str.
charAt(i
)) == false) { return false;
}
}
return true;
}
private static final Pattern sOnlyWordChars = Pattern.compile("\\w+");
private static boolean isOnlyWordChars2
(String s
) { return sOnlyWordChars.matcher(s).matches();
}
}
aW1wb3J0IGphdmEudXRpbC5yZWdleC5QYXR0ZXJuOwoKLyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKLyogVGhlIGNsYXNzIG5hbWUgZG9lc24ndCBoYXZlIHRvIGJlIE1haW4sIGFzIGxvbmcgYXMgdGhlIGNsYXNzIGlzIG5vdCBwdWJsaWMuICovCmNsYXNzIE1haW4gewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24gewoJCWZvcihpbnQgaSA9IDA7IGkgPCA1MDAwMDA7IGkrKyl7CiAgICAgICAgaXNBbHBoYSgiYWJjMTIzZGVmNDU2aGlnNzg5a2xtMDAwIik7CiAgICAgICAgaXNBbHBoYSgiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKTt9CiAgICAgICAgCi8vICAgICAgICAgICAgCWZvcihpbnQgaSA9IDA7IGkgPCA1MDAwMDAwOyBpKyspewovLyAgICAgICAgaXNPbmx5V29yZENoYXJzKCJhYmMxMjNkZWY0NTZoaWc3ODlrbG0wMDAiKTsKLy8gICAgICAgIGlzT25seVdvcmRDaGFycygiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKTt9CiAgICAgICAgCi8vICAgICAgICAgICAgCWZvcihpbnQgaSA9IDA7IGkgPCA1MDAwMDAwOyBpKyspewovLyAgICAgICAgaXNBbHBoYSgiYWJjMTIzZGVmNDU2aGlnNzg5a2xtMDAwIik7Ci8vICAgICAgICBpc0FscGhhKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpO30KCX0KCglwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzT25seVdvcmRDaGFycyhTdHJpbmcgcykgewoJCWNoYXJbXSBjaGFycyA9IHMudG9DaGFyQXJyYXkoKTsKCQlmb3IgKGNoYXIgYyA6IGNoYXJzKSB7CgkJCWlmICghQ2hhcmFjdGVyLmlzTGV0dGVyKGMpKSB7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCQl9CgkJcmV0dXJuIHRydWU7Cgl9CgoJcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc0FscGhhKFN0cmluZyBzdHIpIHsKCQlpZiAoc3RyID09IG51bGwpIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQlpbnQgc3ogPSBzdHIubGVuZ3RoKCk7CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBzejsgaSsrKSB7CgkJCWlmIChDaGFyYWN0ZXIuaXNMZXR0ZXIoc3RyLmNoYXJBdChpKSkgPT0gZmFsc2UpIHsKCQkJCXJldHVybiBmYWxzZTsKCQkJfQoJCX0KCQlyZXR1cm4gdHJ1ZTsKCX0KCglwcml2YXRlIHN0YXRpYyBmaW5hbCBQYXR0ZXJuIHNPbmx5V29yZENoYXJzID0gUGF0dGVybi5jb21waWxlKCJcXHcrIik7CgoJcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc09ubHlXb3JkQ2hhcnMyKFN0cmluZyBzKSB7CgkJcmV0dXJuIHNPbmx5V29yZENoYXJzLm1hdGNoZXIocykubWF0Y2hlcygpOwoJfQoKfQ==