http://qiita.com/Nabetani/items/c206fbc645c255cb7de6
http://nabetani.sakura.ne.jp/hena/ord11arithseq/
前回の続き。
今回は複数の等差数列から、最も長い列になるものを取得します。
最初は/(1.{0,})\1{3,}1/とかそんなかんじでガガッと一発取得してやろう、とか考えていたのですが、後方参照でサブパターンをマッチさせる方法がわからず挫折。
結局一重ではありますがループになってしまいました。
残念。
得意な人ならきっとできると思うので教えてください。
かかった時間は2時間くらい。
そのうち1.5時間は正規表現を作っては消していたところ。
つうかbase_convert()便利だな。
「オフラインリアルタイムどう書く」の一覧
http://nabetani.sakura.ne.jp/hena/ord11arithseq/
前回の続き。
今回は複数の等差数列から、最も長い列になるものを取得します。
= strlen($input)){ break; }
}
return $count;
}
}
// テスト
$test = [
[ '12345abcz', '5' ],
/* 省略 */
];
$sequence = new SEQUENCE();
foreach($test as $key=>$data){
$answer = $sequence->get($data[0]);
if($answer !== (int)$data[1]){
print('えらー');
}
}
順番にくるくるやっていけばいいだけなのですが、何故か正規表現に思い至ってしまったのでやってみた。最初は/(1.{0,})\1{3,}1/とかそんなかんじでガガッと一発取得してやろう、とか考えていたのですが、後方参照でサブパターンをマッチさせる方法がわからず挫折。
結局一重ではありますがループになってしまいました。
残念。
得意な人ならきっとできると思うので教えてください。
かかった時間は2時間くらい。
そのうち1.5時間は正規表現を作っては消していたところ。
つうかbase_convert()便利だな。
「オフラインリアルタイムどう書く」の一覧
PR