from collections import Counter
def can_form_learning_set(s):
# Подсчитываем количество каждой буквы
count = Counter(s)
# Проверяем наличие хотя бы одной 'z'
if count['z'] == 0:
return "NO"
# Проверяем последовательность
for i in range(26): # 26 букв в английском алфавите
current_letter = chr(ord('a') + i)
next_letter = chr(ord('a') + i + 1) if i < 25 else None
current_count = count[current_letter]
if next_letter:
next_count = count[next_letter]
# Если текущая буква есть, то следующая должна быть на 1 больше
if current_count > 0 and next_count != current_count + 1:
return "NO"
else:
# Если текущая буква 'z', то просто проверяем, что она есть
if current_count > 0 and current_letter != 'z':
# Если есть буквы до 'z', то 'z' должна быть последней
return "NO"
return "YES"
# Пример использования
s = input().strip()
print(can_form_learning_set(s))
print(can_form_learning_set("xyyzzz")) # YES
print(can_form_learning_set("z")) # YES
print(can_form_learning_set("abbccc")) # NO
print(can_form_learning_set("zyzzy")) # YES
print(can_form_learning_set("yzzzz")) # NO
Маленький Олежка решил, что ему пора изучать английский язык. Поэтому ему на День рождения подарили обучающий набор кубиков, который можно описать следующим образом:
• на каждом кубике нарисована одна строчная буква английского алфавита
• в наборе обязательно должен быть хотя бы один кубик с буквой «z»
• если в наборе присутствует некоторое количество кубиков с i-й буквой английского алфавита, то кубиков с (i + 1)-й буквой должно быть ровно на один больше
Недавно у Олежки были гости, которые играли с его кубиками, разбросали их, какие-то из них могли затеряться. Олежка выложил все кубики в ряд и задался вопросом: «это все еще похоже на обучающий набор кубиков?» Скорее помогите ему ответить на этот вопрос!
Формат входных данных
В входном файле находится непустая строка S длиной не более 10^5 символов, состоящая только из строчных английских букв — выложенные в ряд кубики.
Формат выходных данных
Выведите «YES» (без кавычек), если кубики, находящиеся перед Олежкой, могут образовать обучающий набор, и «NO» (без кавычек) — если не могут.
Примеры:
xyyzzz
YES
z
YES
abbccc
NO
zyzzy
YES
yzzzz
NO