このTopCoderの問題はこちらで見ることができる(要TopCoder登録 & 問題文は英語)。それでは、問題について説明する。
ネットやメールにおいて、署名をカスタムして面白いものにしようとすることがある。あなたは掲示板の管理者で、特定のルールに従ったときに名前に飾りをつけるようにしようとしている。nameは名前、commands[]はnameの前後のどちらを飾るかを指定するもので、decorations[]は飾る文字列である。commandは3種類ある。commnads[i]がprependなら前にdecorations[i]をつけ、appendなら後ろにdecorations[i]をつけ、surroundならdecorations[i]を前につけ、後ろにはdecoratios[i]を反転させたものを付けることになる。nameに対し、command[]、decorations[]を順番に施した結果得られる文字列を返すメソッドを作成せよ。
私の解答は以下の通り。
public class SignatureDecorator { public String applyDecoration(String name, String[] commands, String[] decorations) { String str = new String(name); for( int i=0 ; i<commands.length ; i++ ){ if( commands[i].equals("prepend") ){ str = decorations[i] + str; }else if( commands[i].equals("append") ){ str = str + decorations[i]; }else if( commands[i].equals("surround") ){ String rev = new StringBuffer(decorations[i]).reverse().toString(); str = decorations[i] + str + rev; } } return str; } }
得点は216.56/250、中央値は約192点。
0 件のコメント:
コメントを投稿