Biorąc pod uwagę ciąg znaków składający się w całości z q
s reprezentujących ćwierćnuty e
si reprezentujących ósme nuty, wyprowadzaj indeksy ćwierćnuty, które są zsynchronizowane.
Synchronizacja jest złożona, ale na potrzeby tego wyzwania nasza definicja „synchronizacji” będzie bardzo prosta: ćwierćnuta rozpoczynająca się od „off-beat” - to znaczy, uderzenia liczone jako „i” w n / 4 czas.
Może to być alternatywnie zdefiniowane jako dowolna ćwierćnuta poprzedzona nieparzystą liczbą ósmych nut. Na przykład notatki oznaczone *
poniżej są uważane za zsynchronizowane, a ich indeksy są również wyświetlane:
eqqeqqeqqe
** **
12 78
Output: 1 2 7 8
Dane wejściowe zawsze będą składały się z całej liczby taktów w czasie 4/4 (ćwierćnuta to ćwierć taktu, a ósma nuta to ósma taktu). (Dane wejściowe również nigdy nie będą puste.) Dane wyjściowe mogą być pojedynczym ciągiem znaków z elementami oddzielonymi dowolnym separatorem, który nie zawiera liczb lub tablicy / listy / itp. Dane wyjściowe mogą być oparte na 1 (tzn. Pierwszy indeks to 1 zamiast 0), jeśli chcesz, i może być również w dowolnej bazie liczbowej (jednostkowa, dziesiętna itp.).
Ponieważ jest to code-golf , wygrywa najkrótszy kod w bajtach.
Przypadki testowe:
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'
zamiasteqqqe