|
@@ -214,7 +214,7 @@ def add_numbers(a: int, b: int | float | str) -> int:
|
|
|
|
|
|
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
-# from typing import List, Dict, Tuple, Optional, Any, Union
|
|
|
+from typing import List, Dict, Tuple, Optional, Any, Union
|
|
|
|
|
|
def list_upper(lst: List[str]):
|
|
|
for elem in lst:
|
|
@@ -226,9 +226,37 @@ def list_upper(lst: List[str]):
|
|
|
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
def first_repeated_word(s: str):
|
|
|
+ """Находит первый дубль в строке
|
|
|
+
|
|
|
+ Args:
|
|
|
+ s (str): строка
|
|
|
+
|
|
|
+ Returns:
|
|
|
+ str: первое повторяющееся слово
|
|
|
+ """
|
|
|
l = s.split()
|
|
|
- for i in l:
|
|
|
- print(i)
|
|
|
+ d_index = dict()
|
|
|
+
|
|
|
+ for i in range(len(l)):
|
|
|
+ if (l.count(l[i]) > 1) and l[i] not in d_index.values():
|
|
|
+ d_index.update({l.index(l[i], i+1, len(l)) : l[i]})
|
|
|
+
|
|
|
+ if len(d_index) == 0:
|
|
|
+ return None
|
|
|
+
|
|
|
+ m = len(l)
|
|
|
+ if m == 0:
|
|
|
+ return None
|
|
|
+
|
|
|
+ for key,value in d_index.items():
|
|
|
+ if key < m:
|
|
|
+ m = key
|
|
|
|
|
|
-first_repeated_word("ab ca bc Ab cA aB bc")
|
|
|
-
|
|
|
+ return d_index.get(m)
|
|
|
+
|
|
|
+assert first_repeated_word("ab ca bc ab") == "ab"
|
|
|
+assert first_repeated_word("ab ca bc Ab cA aB bc") == "bc"
|
|
|
+assert first_repeated_word("ab ca bc ca ab bc") == "ca"
|
|
|
+assert first_repeated_word("hello hi hello") == "hello"
|
|
|
+
|
|
|
+print(first_repeated_word.__doc__)
|