このTopCoderの問題はこちらで見ることができる(要TopCoder登録 & 問題文は英語)。問題文について意訳で説明する。
与えられたXという整数に対し、Rev(X)というXの桁を反転させた整数を得ることができる。例えばRev(123)=321、Rev(100)=1である。xとyという二つの正の整数が与えられたとき、Rev(Rev(x) + Rev(y))を返すメソッドを作成せよ。
私の解答はこちら。
public class ReversedSum {
public int getReversedSum(int x, int y) {
StringBuffer xx = new StringBuffer("" + x);
StringBuffer yy = new StringBuffer("" + y);
int s = Integer.parseInt(xx.reverse().toString()) +
Integer.parseInt(yy.reverse().toString());
StringBuffer ss = new StringBuffer("" + s);
return Integer.parseInt(ss.reverse().toString());
}
}
得点は243.24/250、1回のsubmitでシステムテストクリア。中央値は約233点。エレガントさを求めるのであればRev(X)という関数を定義するのが良さそうです。
0 件のコメント:
コメントを投稿