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