Very neat! But it has four states.
State 1: y,ys,sy,,s,ys,sy,
State 2: s,sy,sy,,y,sy,ys,
State 3: y,ys,ys,,s,ys,sy,
State 4: y,sy,ys,,s,ys,sy,
State 2: s,sy,sy,,y,sy,ys,
...
That it has a distinct "initializing" state could seen as an advantage. If not, change the initial string to one of states 2, 3 or 4 to get a purely three state engine.
State 1: y,sy,ys,,s,ys,sy,
State 2: s,sy,sy,,y,sy,ys,
State 3: y,ys,ys,,s,ys,sy,
State 1: y,sy,ys,,s,ys,sy,
...
Modified engine that tracks the states:
As for your question, longer is trivial. Shorter, on the other hand...
State 1: y/123/231/
State 2: y/231/312/
State 3: y/312/123/
State 1: y/123/231/
...
And with an "initializing" state:
State 1: y/123i/231/
State 2: y/2311/312/
State 3: y/3122/123/
State 4: y/1233/231/
State 2: y/2311/312/
|