Задача по информатике, не могу понять
Робот учится петь. Пока это непростая для него задача, и не все слова получается пропеть красиво и внятно.
Роботу удобно петь слово, если в нём буквы, обозначающие согласные звуки, чередуются с буквами, обозначающими гласные.
Например, "лалала", "ахаха" и "бада бам" — это удобные строки, а "бам бам" и "тру ля ля" — нет.
Есть строка. Выведи минимальное количество букв, которые нужно заменить, чтобы роботу было удобно её пропеть. Обрати внимание — в строке может быть несколько слов, разделённых пробелами. Вся фраза целиком может оказаться неудобной для пения, несмотря на то, что каждое слово в отдельности — удобное.
Буквы, обозначающие гласные звуки: а, у, о, и, э, ы, я, ю, е, ё.
Как можно решить? Сам без понятия.
somestr = input().lower().replace(' ','')
word = 'аоуэяюиыеё'
b = list()
score = 0
for i in somestr:
b.append(i)
if b[0] in word:
b.pop(0)
b.insert(0,'м')
score +=1
for j in range(len(b)-1):
if b[j] not in word and b[j + 1] not in word:
b.pop(j)
b.insert(j,'а')
score += 1
if b[j] in word and b[j + 1] in word:
b.pop(j)
b.insert(j,'м')
score += 1
print(score)
Ну вот наметки.
1 убираем все пробелы.
2 все буквы делаем маленькими
3 Проверяем, что там остались только буквы (string.isalpha() python)
4 идем по буквам с шагом 2 - они ВСЕ должны быть либо in (а, у, о, и, э, ы, я, ю, е, ё) либо not in (а, у, о, и, э, ы, я, ю, е, ё)
s = input()
vowels = 'ауоиэыяюеё'
trans = ''
for ch in s:
if ch in vowels:
trans += 'а'
elif ch != ' ':
trans += 'б'
ex1 = 'аб' * (len(trans) // 2) + 'а' * (len(trans) % 2)
ex2 = 'ба' * (len(trans) // 2) + 'б' * (len(trans) % 2)
ans1 = 0
for k in range(len(trans)):
if trans[k] != ex1[k]:
ans1 += 1
ans2 = 0
for k in range(len(trans)):
if trans[k] != ex2[k]:
ans2 += 1
print(min(ans1, ans2))
НЕ ЗАБУДЬТЕ РАССТАВИТЬ ТАБЫ
Удачи всем в начинаниях!! <3