Bei einer Eingabe einer Zeichenfolge, die ausschließlich aus q
s für Viertelnoten und e
s für Achtelnoten besteht, werden die Indizes der synchronisierten Viertelnoten ausgegeben.
Die Synchronisation ist komplex, aber für die Zwecke dieser Herausforderung wird unsere Definition von "synchronisiert" sehr einfach sein: Eine Viertelnote, die mit dem "Off-Beat" beginnt - das heißt, die Beats werden in n / 4 als "und" gezählt Zeit.
Dies kann alternativ als jede Viertelnote definiert werden, der eine ungerade Anzahl von Achtelnoten vorausgeht. Beispielsweise werden die mit gekennzeichneten Noten *
als synchronisiert betrachtet und ihre Indizes werden ebenfalls angezeigt:
eqqeqqeqqe
** **
12 78
Output: 1 2 7 8
Die Eingabe besteht immer aus einer ganzen Anzahl von Takten im 4/4-Takt (eine Viertelnote ist ein Viertel eines Takts und eine Achtelnote ist ein Achtel eines Takts). (Die Eingabe ist auch niemals leer.) Die Ausgabe kann entweder eine einzelne Zeichenfolge mit durch Trennzeichen getrennten Elementen sein, die keine Zahlen enthalten, oder ein Array / eine Liste / usw. Die Ausgabe kann auf 1 basieren (dh der erste Index ist 1 anstelle von 0), und sie kann auch auf einer beliebigen numerischen Basis (unär, dezimal usw.) erfolgen.
Da es sich um Code-Golf , der kürzeste Code in Bytes gewinnt.
Testfälle:
In Out
-----------------------------------------------
eqqqe 1 2 3
qeqeq 2
qqqeqqeeeeqeqeqeqqeqqeqq 4 5 10 14 19 20
eeeeeqeeqeeqqqqeqeqeeqe 5 8 11 12 13 14 18 21
qqqq <none>
eeeeeeee <none>
'eqqqe'
statteqqqe