このTopCoderの問題はこちらで見ることができる(要TopCoder登録 & 問題文は英語)。問題文についておおまかに説明する。
整数ほど美しいものは無い。整数の美しさは、10進数表記で書いたときに、含まれる異なった桁の数をいう。整数nが与えられたときに、その整数の美しさを返すメソッドを作成せよ。
私の解答はこちら。一旦文字列にして、各桁ごとに分解して集合を作成し、その集合のサイズを求めています。
import java.util.HashSet;
public class TheBeauty {
public int find(int n) {
String sn = "" + n;
HashSet<Character> hs = new HashSet<Character>();
for( int i=0 ; i<sn.length() ; i++ ){
hs.add(sn.charAt(i));
}
return hs.size();
}
}
得点は249.01/250、1回のsubmitでシステムテストクリア。問題文も実装も簡単な問題です。集合を作るときに、10で割った余りを集合に入れて、10で割ることを繰り返す方法もあります。

0 件のコメント:
コメントを投稿