Напишите программу или функцию, которая получает в качестве входных данных строку, представляющую собой валлийское слово (UTF-8, если иное не указано вами).
Ниже приведены все отдельные буквы на валлийском языке:
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, ты, ты, я
Процитирую Википедию ,
В то время как орграфы ch , dd , ff , ng , ll , ph , rh , th написаны с двумя символами, все они считаются отдельными буквами. Это означает, например, что Лланелли (город в Южном Уэльсе), как считается, имеет только шесть букв на валлийском языке, по сравнению с восемью буквами на английском языке.
Эти буквы также существуют на валлийском языке, хотя они ограничены техническим словарным запасом, заимствованным из других языков:
k, q, v, x, z
Буквы с диакритическими знаками не рассматриваются как отдельные буквы, но ваша функция должна принимать их и уметь их считать. Возможные такие буквы:
â, î, î, ô, û, ŷ, ŵ, é, í, í, í, ó, ú, ý, ẃ, ä, ë, ï, ö, ü, ÿ, ẅ, à, è, ì, ò, ù, ẁ
(Это означает, что ASCII не является приемлемой входной кодировкой, поскольку не может кодировать эти символы.)
Заметки:
- Это код гольф.
- Вам не нужно учитывать такие слова, как llongyfarch , в которой нг - не орграф, а две отдельные буквы. Это слово состоит из девяти букв, но вы можете ошибочно считать его как восемь. (Если вы можете объяснить такие слова, это круто, но выходит за рамки этой задачи.)
- У входа гарантированно не будет пробела (если вы не предпочитаете его с одним завершающим символом новой строки (или чем-то более эзотерическим), в этом случае это может быть предоставлено). Конечно, не будет внутреннего пробела.
Тестовые случаи:
- Лландудно, 8
- Лланелли, 6
- Рил, 3
- Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch, 50 (на самом деле 51, но мы будем считать 50)
- Тёр, 3
- Cymru, 5
- Глындара, 7