2012年10月19日金曜日

TopCoder SRM437 Div2 250Pts

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

コメントを投稿

フォロワー

ページビューの合計