Wyzwanie
Kiedyś czytałem Google Style Guide Google'a i potknąłem się o ich algorytm, aby przekonwertować dowolny ciąg znaków na notację camelCase. W tym wyzwaniu musisz wdrożyć ten algorytm, ponieważ nie chcesz robić tych wszystkich rzeczy w swojej głowie, gdy piszesz swoje super konkurencyjne zgłoszenia Java na wyzwania związane z golfem.
Uwaga: Wprowadziłem niewielkie poprawki w algorytmie. Musisz użyć tego określonego poniżej.
Algorytm
Zaczynasz od dowolnego ciągu wejściowego i stosujesz do niego następujące operacje:
- Usuń wszystkie apostrofy
`'
- Podziel wynik na słowa, dzieląc na
- znaki, które nie są alfanumeryczne i nie są cyframi
[^a-zA-Z0-9]
- Wielkie litery, które są otoczone małymi literami po obu stronach.
abcDefGhI jk
na przykład plonyabc Def Ghi jk
- znaki, które nie są alfanumeryczne i nie są cyframi
- Każde słowo ma małe litery.
- Wielka litera pierwszy znak każdego oprócz pierwszego słowa.
- Połącz wszystkie słowa z powrotem razem.
Dodatkowe uwagi
- Dane wejściowe będą zawierać tylko ASCII do wydruku.
- Jeśli cyfra jest pierwszą literą w słowie, pozostaw ją taką, jaka jest i nie zapisuj w tym słowie czegoś innego.
- Dane wejściowe zawsze będą miały co najmniej jeden znak.
Zasady
- Dozwolona funkcja lub pełny program.
- Domyślne reguły wejścia / wyjścia.
- Obowiązują standardowe luki .
- To jest golf golfowy , więc wygrywa najmniej bajtów. Tiebreaker to wcześniejsze zgłoszenie.
Przypadki testowe
„Programowanie zagadek i golf” -> „programowanie PuzzleCodeGolf” „Żądanie HTTP XML” -> „xmlHttpRequest” „obsługuje IPv6 na iOS?” -> „obsługujeIpv6OnIos” „SomeThing w1th, apo'strophe's i„ punc] tuation ”->„ someThingW1thApostrophesAndPuncTuation ” „nic specjalnego” -> „nic specjalnego” „5pecial ca5e” -> „5pecialCa5e” „1337” -> „1337” „1337-SPEk” -> „1337Speak” „whatA mess” -> „whataMess” „abcD” -> „abcd” „a” -> „a” „B” -> „b”
Happy Coding!
snake_case
&PascalCase
snake_case
powodu Pythona. FORTH też ma, FORTHCASE
a APL maunreadable in any case
ApostropheS
na wyjściu.