2011年8月20日土曜日

TopCoder SRM225 Div2 250Pts

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

コメントを投稿

フォロワー

ブログ アーカイブ

ページビューの合計