この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 件のコメント:
コメントを投稿