[プログラマー]英語のドラゴンボール(JAVA)


問題の説明
1番からn番までのn人は英語の言葉でドラゴンボールをしています英語のドラゴンボールのルールは以下の通りです.
1番から数字順に単語を話す
最後の人が単語を言ったら、1番から始めます.
前に会った人が言った単語の最後の文字で始まる単語を言います.
以前に現れた言葉は使用できません.
一字であることを認めない単語
次は3人で言葉でドラゴンボールを遊ぶ場合です.
tank → kick → know → wheel → land → dream → mother → robot → tank
上の文字は次の操作を行います.
最初の人は自分の最初の順番でtankと言いました
2人目は自分の最初の蹴りで
三人目は初めてknow
1番の人は自分の2番目の車輪で車輪を話した.
(続き)
言葉の接頭辞を続けると、3番の人物が自分の3番目の順番で言ったtankという言葉は以前に出てきた単語だから淘汰されます.
人の数nと人が順番に言った単語をパラメータとする場合は、解法関数を完了し、最初に淘汰された人の番号とその人が自分の何回目に淘汰された後に戻るかを求めてください.
せいげんじょうけん
ドラゴンクエストに参加した人数nは2以上10以下の自然数である.
wordsは,ドラゴンを受け取るための単語を順番に含む配列であり,長さはnまたは100以下である.
単語の長さは2または50以下です.
すべての単語は小文字です.
ドラゴンボールを受け取るときに使う単語の意味は気にしないでください.
正解は[番号,順序]として返される.
指定された単語に脱落者がいない場合は、[0,0]を返します.
My Code
import java.util.*;
class Solution {
    public int[] solution(int n, String[] words) {
        Set<String> hs = new HashSet<>();
        hs.add(words[0]);
        int idx=0;
        while(++idx<words.length) {
            String pre = words[idx-1], cur = words[idx];
            if(hs.contains(cur) || pre.charAt(pre.length()-1)!=cur.charAt(0)) {
                return new int[]{idx%n+1, idx/n+1};
            }
            hs.add(cur);
        }
        return new int[]{0,0};
    }
}
Comment
2級の難易度のばらつきは少し大きいようです.