Wyzwanie:
Biorąc pod uwagę ciąg zawierający tylko wielkie i / lub małe litery (w zależności od tego, co wolisz), umieść go tape
poziomo, aby go naprawić. Robimy to poprzez sprawdzenie różnicy dwóch sąsiadujących liter w alfabecie (pomijając wrap-around i tylko idzie do przodu) i wypełnienie przestrzeni z taką TAPE
/ tape
jak będziemy potrzebować.
Przykład:
Wejście: abcmnnnopstzra
Wyjście:abcTAPETAPETmnnnopTAstTAPETzra
Dlaczego?
- Pomiędzy
c
im
powinno byćdefghijkl
(długość 9), więc wypełniamy toTAPETAPET
; - Pomiędzy
p
is
powinno byćqr
(długość 2), więc wypełniamy toTA
; - Pomiędzy
t
iz
powinno byćuvwxy
(długość 5), więc wypełniamy toTAPET
.
Zasady konkursu:
- Różnica dotyczy tylko przodu, więc nie ma między nimi taśmy
zra
. - Możliwe jest posiadanie wielu takich samych sąsiadujących liter jak
nnn
. - Dozwolone jest przyjmowanie danych wejściowych w dowolnym rozsądnym formacie. Może być pojedynczym łańcuchem, tablicą / listą znaków, tablicą znaków / listą itp. Wyjście ma taką samą elastyczność.
- Możesz używać małych i / lub wielkich liter w dowolny sposób. Dotyczy to zarówno wejścia, wyjścia, jak i
TAPE
. - Możliwe, że nie
TAPE
jest konieczne, w którym to przypadku dane wejściowe pozostają niezmienione.
Główne zasady:
- To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
Nie pozwól, aby języki gry w golfa zniechęcały Cię do publikowania odpowiedzi w językach niekodujących golfa. Spróbuj znaleźć możliwie najkrótszą odpowiedź na „dowolny” język programowania. - Do odpowiedzi mają zastosowanie standardowe reguły , więc możesz używać STDIN / STDOUT, funkcji / metody z odpowiednimi parametrami i zwracanymi typami, pełnych programów. Twoja decyzja.
- Domyślne luki są zabronione.
- Jeśli to możliwe, dodaj link do testu kodu.
- W razie potrzeby dodaj również wyjaśnienie.
Przypadki testowe:
Input: "abcmnnnopstzra"
Output: "abcTAPETAPETmnnnopTAstTAPETzra"
Input: "aza"
Output: "aTAPETAPETAPETAPETAPETAPEza"
Input: "ghijk"
Output: "ghijk"
Input: "aabbddeeffiiacek"
Output: "aabbTddeeffTAiiaTcTeTAPETk"
Input: "zyxxccba"
Output: "zyxxccba"
Input: "abccxxyz"
Output: "abccTAPETAPETAPETAPETAPExxyz"
Input: "abtapegh"
Output: "abTAPETAPETAPETAPETtaTAPETAPETAPETApeTgh"
Input: "tape"
Output: "taTAPETAPETAPETApe"
ab[TAPETAPETAPETAPET]TA[TAPETAPETAPETA]PE[T]gh
(dodano, []
aby był bardziej czytelny).