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