Задача на проверку строк , python, код выдает неверный ответ
я написала код по следующей задаче:
ограничение по времени на тест 2 секунды
ограничение по памяти на тест 256 мегабайт
Витя начал учить берляндский язык. Известно, что
в Берляндии используют латинский алфавит. Буквы
«a», «o», «u», «i» и «e» являются гласными.
Остальные буквы — согласные.
В берляндском языке после каждой согласной буквы
обязательно идёт гласная буква, а после гласной —
может идти любая. Единственным исключением является
согласная буква «n» — после неё может идти любая
буква (не только гласная), а может и не идти буква
вообще. Например, слова «harakiri», «yupie», «man»
и «nbo» являются берляндскими, а слова «horse»,
«king», «my» и «nz» — нет.
Помогите Вите понять, является ли слово s
берляндским.
Входные данные
Первая строка входных данных содержит строку s,
состоящую из |s|(1≤|s|≤100) строчных
латинских букв.
Выходные данные
Выведите «YES» (без кавычек), если идет гласная
после каждой согласной кроме «n», иначе выведите «NO».
Вы можете выводить каждую из букв в любом регистре
(строчную или заглавную).
Примеры
входные данные
sumimasen
выходные данные
YES
входные данные
ninja
выходные данные
YES
входные данные
codeforces
выходные данные
NO
Примечание
В первом и втором примерах после каждой согласной
кроме «n» идёт гласная, поэтому слово является
берляндским.
В третьем примере после согласной «r» идёт другая
согласная «c», а согласная «s» стоит в конце,
поэтому слово не является берляндским.
Написала по ней код:
def solve(s):
q=["a", "o", "u", "i", "e"]
for i in range(len(s)-1):
if (s[i] not in q) and (s[i]!="n") and (s[i+1] not in q):
return "NO"
return "YES"
s=input()
print(solve(s))
Но на нескольких тестах проверяющей системы (Codeforces) он выдаёт неверный ответ, помогите пожалуйста исправить код!!!
Источник: Stack Overflow на русском