Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите переделать код к данной задаче чтобы он выводил не все повторяющиеся а только первую повторяющуюся то есть ca

Никита Мельников Ученик (160), на голосовании 10 месяцев назад
def find_a_repeat(string: str):
hash_map = {}
list_ = []
for item in string.split(" "):
hash_map[item] = hash_map[item] + 1 if item in hash_map else 1
if hash_map[item] > 1 and item not in list_:
list_.append(item)
length = len(list_)
if not length:
return "No repeated words"
return list_ if length > 1 else list_.pop()


print(find_a_repeat("ab ca bc ca ab bc"))
Голосование за лучший ответ
Professional Professional Мудрец (15210) 11 месяцев назад
 Конечная цель - найти первое повторяющееся слово в строке. Можно использовать тот же подход, что и в предыдущем коде, но вместо списка повторяющихся слов мы будем использовать переменную, чтобы хранить первое повторяющееся слово. Вот исправленный код: 

def find_first_repeat(string: str):
hash_map = {}
first_repeat = None
for item in string.split(" "):
if item in hash_map:
first_repeat = item
break
else:
hash_map[item] = 1
if first_repeat is None:
return "No repeated words"
else:
return first_repeat

print(find_first_repeat("ab ca bc ca ab bc"))


Этот код будет выводить только первое повторяющееся слово в строке, если такое есть. Если повторяющихся слов нет, то будет выведено "No repeated words".
Похожие вопросы