Topcoder SRM 486 div2 250 "TxMsg"

問題:http://www.topcoder.com/stat?c=problem_statement&pm=11101 (要ログイン)

本番.

空白で分割した文字列単位で1.母音(a,i,u,e,o)のみはその文字列.2.子音(母音以外)が含まれるときは連続した子音の最初だけを取り出した文字列.の条件を満たす文字列を出力.

public class TxMsg {

	public String getMessage(String original) {
		StringBuffer sb = new StringBuffer();
		for(String word : original.split(" ")){
			int n = word.length();
			if(isAllVowels(word)){
				sb.append(word);
			}else{
				String r = "";
				r += isVowels(word.charAt(0))?"":word.charAt(0);
				for(int i = 1; i < n; ++i){
					char c = word.charAt(i);
					if(!isVowels(c)&&isVowels(word.charAt(i-1))){
						r += c;
					}
				}
				sb.append(r);
			}
			sb.append(" ");
		}
		return sb.toString().trim();
	}
	
	boolean isAllVowels(String word){
		for(char c : word.toCharArray()){
			if(!isVowels(c)){
				return false;
			}
		}
		return true;
	}

	boolean isVowels(char c) {
		for (char v : new char[] { 'a', 'i', 'u', 'e', 'o' }) {
			if (v == c) {
				return true;
			}
		}
		return false;
	}
}