2011年9月22日木曜日

TopCoder SRM249 Div2 250Pts

このTopCoderの問題はこちらで見ることができる(要TopCoder登録 & 問題文は英語)。それでは、問題について説明する。

チャットの会話を受け取った。会話の1要素は1行に対応する。nameという人が何回発言したかを知りたい。このために、nameで会話が始まり、直後にコロンが来た回数を数える。この比較は大文字と小文字を区別するものとする。

私の解答はこちら。

public class ChatTranscript {
 public int howMany(String[] transcript, String name) {
  int cnt = 0;
  // コロンで会話のテキストを区切って、先頭の要素とnameを比較する
  for( int i=0 ; i<transcript.length ; i++ ){
   if( transcript[i].contains(":") == false) continue;
   String[] sp = transcript[i].split(":");
   if( sp.length>0 && sp[0].equals(name) ) cnt++;
  }
  return cnt;
 }
}

得点は約85点。splitした後のif文でsp!=nullなどと書いていたのですが、提出までできてもシステムテストで落とされること数回。ようやく解答にたどりついたけど、何がダメなのか...

0 件のコメント:

コメントを投稿

フォロワー

ブログ アーカイブ

ページビューの合計