Escreva um programa ou função que receba como entrada uma sequência que representa uma palavra galesa (UTF-8, a menos que especificado de outra forma por você).
A seguir, todas as letras em galês:
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, th, u, w, y
Para citar a Wikipedia ,
Enquanto os digrafos ch , dd , ff , ng , ll , ph , rh , th são escritos com dois símbolos, todos são considerados letras únicas. Isso significa, por exemplo, que Llanelli (uma cidade no sul de Gales) é considerada com apenas seis letras em galês, em comparação com oito letras em inglês.
Essas cartas também existem em galês, embora sejam restritas ao vocabulário técnico emprestado de outras línguas:
k, q, v, x, z
Letras com diacríticos não são consideradas letras separadas, mas sua função deve aceitá-las e poder contá-las. Possíveis cartas são:
â, ê, ô, û, ŷ, ŷ, á, é, í, ó, ú, ý, ä, ä, ë, ï, ö, ü, ÿ, ẅ,,, à, è, ì, ò, ù, ẁ
(Isso significa que ASCII não é uma codificação de entrada aceitável, pois não pode codificar esses caracteres.)
Notas:
- Isso é código de golfe.
- Você não precisa explicar palavras como llongyfarch , nas quais o ng não é um dígrafo, mas duas letras separadas. Esta palavra tem nove letras, mas você pode calculá-la como oito. (Se você pode explicar essas palavras, isso é incrível, mas está fora do escopo desse desafio.)
- É garantido que a entrada não possui espaço em branco (a menos que você prefira uma única linha de chegada) (ou algo mais esotérico); Certamente não haverá espaço em branco interno.
Casos de teste:
- Llandudno, 8
- Llanelli, 6
- Rhyl, 3
- Llanfairpwllgwyngyllgogerychwyrndrobwllantysiliogogogoch, 50 (realmente 51, mas contaremos 50)
- Ter, 3
- Cymru, 5
- Glyndŵr, 7