Конечная цель - найти первое повторяющееся слово в строке. Можно использовать тот же подход, что и в предыдущем коде, но вместо списка повторяющихся слов мы будем использовать переменную, чтобы хранить первое повторяющееся слово. Вот исправленный код:
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".
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"))