2012年2月5日日曜日

TopCoder SRM327 Div2 250Pts

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

文字列がfenceと呼ばれるのは"|"と"-"が交互に来るときである。sという"|"と"-"からなる文字列が与えられたとき、s中の部分文字列でfenceの最大長さになるものを見つけ、その長さを求めよ。

私の解答はこちら。

public class FunnyFence {

 public int getLength(String s) {
  int maxlen = 0;
  int len = 0;
  char prev = 'a'; // ダミーの文字
  for( int i=0 ; i<s.length() ; i++ ){
   char cur = s.charAt(i);
   if( prev != cur ){ // 直前の文字と違えばfenceの長さに1加える
    len++;
   }else{ // 直前の文字と同じならfence=1として再探索
    len = 1;
   }
   prev = cur;
   maxlen = Math.max(maxlen, len);
  }
  return maxlen;
 }

}

得点は243.76/250、中央値は約222点。

0 件のコメント:

コメントを投稿

フォロワー

ブログ アーカイブ

ページビューの合計