PostAddsense


WordForm Topcoder



public class WordForm {    // The problem name is Stemmer.
    public String getSequence(String word) {
        word = word.toUpperCase();
        char c = word.charAt(0);
        String res = (c=='A' || c=='E' || c=='I' || c=='O' || c=='U') ? "V" : "C";
        boolean consonant = (res.equals("C")) ? true : false;

        for (int i = 1; i < word.length(); i++) {
            c = word.charAt(i);
            if (c=='A' || c=='E' || c=='I' || c=='O' || c=='U') {
                if(consonant) {res += "V"; consonant = false;}
            }
            else if (c=='Y' && consonant) {
                res += "V";
                consonant = false;
            }
            else if (!consonant) {
                res += "C";
                consonant = true;
            }
        }

        return res;
    }
}


Explanation

Y가 자음(consonant)과 모음(vowel) 둘 중 어느 것이 String에 기록되는지 확인하면 나머지는 쉽게 풀린다.