配列内のパターンを見つける簡単な方法があるかどうか疑問に思っていましたか?
与えられた配列のパターンの 1 つを探しているとしましょう: A) スマイル、しかめっ面、スマイル、しかめっ面など B) スマイル、怒り、しかめっ面、スマイル、怒り、しかめっ面など C) スマイル、スマイル、スマイル
ここで、指定された配列がパターン A に一致するとします。
怒っている、怒っている、怒っている、Smile, Frown, Smile, Frown, Smile, Frown,
怒っている、眉をひそめている、怒っている、眉をひそめている、笑顔
強調表示されたセクションは、パターン A に一致するセクションであり、リストに保存したいセクションです。
今、私はこのようなものを持っています:
For each element in the array
check to see if element is smile
if element is smile, check to see if next element is frown
if element is smile and next element is frown - store away in a list
set a boolean saying we've found pattern A
if the boolean value is false and we did not find the smile frown pattern
For each element in the array
check to see if element is smile
if element is smile, check to see if next element is angry,
is next element is angry, check to see if next next element is frown
if element is smile, next element is angry, next next element is frown - store away in a list
set a boolean saying we've found pattern B
if boolean value is false for both finding pattern A and pattern B search for pattern C
これに対するより良いアプローチはありますか?全体的にダメな気がする……。