Top.Mail.Ru
Ответы

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

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"))

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