Napisz program lub funkcję, która odbiera jako wejście ciąg znaków reprezentujący walijskie słowo (UTF-8, chyba że określiłeś inaczej).
Wszystkie poniższe litery są w języku walijskim:
a, b, c, ch, d, dd, e, f, ff, g, ng, h, i, j, l, ll, m, n, o, p, ph, r, rh, s, t, ty, u, w, y
Cytując Wikipedię ,
Podczas gdy każdy z digraphów ch , dd , ff , ng , ll , ph , rh , th jest zapisany dwoma symbolami, wszystkie są uważane za pojedyncze litery. Oznacza to na przykład, że Llanelli (miasto w południowej Walii) ma tylko sześć liter w języku walijskim, w porównaniu do ośmiu liter w języku angielskim.
Te litery istnieją również w języku walijskim, choć są ograniczone do słownictwa technicznego zapożyczonego z innych języków:
k, q, v, x, z
Litery z znakami diakrytycznymi nie są traktowane jako osobne litery, ale twoja funkcja musi je zaakceptować i być w stanie je policzyć. Możliwe takie litery to:
â, ê, î, ô, û, ŷ, ŵ, á, é, í, ó, ú, ý, ẃ, ä, ë, ï, ö, ü, ÿ, ẅ, à, è, ì, ò, ù, ẁ
(Oznacza to, że ASCII nie jest dopuszczalnym kodowaniem wejściowym, ponieważ nie może kodować tych znaków.)
Uwagi:
- To jest kod golfowy.
- Nie musisz uwzględniać takich słów jak llongyfarch , w których ng nie jest wykresem, ale dwiema oddzielnymi literami. To słowo składa się z dziewięciu liter, ale można je przeliczyć na osiem. (Jeśli można wyjaśnić takich słów, to rodzaj niesamowite, ale poza zakres tego wyzwania.)
- Dane wejściowe z pewnością nie mają spacji (chyba że wolisz je z pojedynczym końcowym znakiem nowej linii (lub czymś bardziej ezoterycznym), w którym to przypadku można to podać). Na pewno nie będzie wewnętrznych białych znaków.
Przypadki testowe:
- Llandudno, 8
- Llanelli, 6
- Rhyl, 3
- Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch, 50 (naprawdę 51, ale policzymy 50)
- Tŷr, 3
- Cymru, 5
- Glyndŵr, 7