今日のTopCoderの問題はこちらで見ることができる(要TopCoder登録 & 問題文は英語)。それでは、問題について説明する。
プリンタがウィルスに感染して、訳のわからないことになってしまった。あなたは、しばらく印刷しているうちにあることに気が付いた。ひっくり返っているのである。ページの各行の左半分は真ん中から左の余白へ、右半分は右の余白から真ん中に文章が続いているのである。例えば、"abcd"という印刷は本来は"badc"になっているということである。あなたへの問題は1行のlineが与えられたときに、これを解読して本来の順序に戻すということである。なお、文字の数は常に偶数であると仮定してよいものとする。
私の解答は以下の通り。
public class InsideOut { public String unscramble(String line) { StringBuffer s1 = new StringBuffer(line.substring(0, line.length()/2)); StringBuffer s2 = new StringBuffer(line.substring(line.length()/2)); return s1.reverse().toString() + s2.reverse().toString(); } }
得点は244.95。StringBuilderというクラスを利用している回答があったので、調べてみようかと思う。
0 件のコメント:
コメントを投稿