2011年7月16日土曜日

TopCoder SRM202 Div2 250Pts

今日のTopCoderの問題はこちらで見ることができる(要TopCoder登録 & 問題文は英語)。

問題について説明する。letter-stringというのは、A-Z、a-zの52文字のアルファベットと"-"から成り立っている。letter-stringの長さは"-"を文字列から取り除いたものである。letter-stringである文字列型の配列sが与えられたときに、それらの文字列の長さを返すメソッドを作成せよ。

私の解答は以下の通り。"-"を空文字に置き換えて長さを足すという方針をとった。

public class LetterStrings {
 public int sum(String[] s) {
  int total = 0;
  for(int i=0 ; i<s.length ; i++){
   String ss = s[i].replaceAll("-","");
   total += ss.length();
  }
  return total;
 }
}

得点は247.79/250。正解率は約98%。全体の解答を見ていると、charAtメソッドを用いて、'-'でなければ長さを格納する変数に1ずつ値を加えるという方法をとっている人が多かった。中身を変えるのを嫌うのであれば、charAtを利用する方が賢明だろう。

0 件のコメント:

コメントを投稿

フォロワー

ブログ アーカイブ

ページビューの合計