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