技術メモ

神奈川在住のITエンジニアの備忘録。おもにプログラミングやネットワーク技術について、学んだことを自分の中で整理するためにゆるゆると書いています。ちゃんと検証できていない部分もあるのでご参考程度となりますが、誰かのお役に立てれば幸いです。

leetCode:824. Goat Latin

leetCode の「824. Goat Latin」を解いた。
https://leetcode.com/problems/goat-latin/

leetCode の掲示板に、単語 (String) が文字 (char) を含んでいるのか、簡単に判定する方法があったので、今後の参考のため、その方法を使った実装例をここに残しておく。

    public String toGoatLatin(String S) {
        if (S == null || S.length() == 0) {
            return "";
        }

        StringBuilder result = new StringBuilder();
        StringBuilder suffix = new StringBuilder();

        String[] words = S.split(" ");
        for (String word : words) {
            suffix.append('a');
            char firstCh = word.charAt(0);

            // word が母音で始まるかどうかを判定。
            // 以下のように String#indexOf() を使うと簡単。
            if ("aeiouAEIOU".indexOf(firstCh) >= 0) {
                result.append(word);
            }
            else {
                result.append(word.substring(1)).append(firstCh);
            }
            result.append("ma").append(suffix).append(" ");
        }
        return result.toString().substring(0, result.length() - 1);
    }