Парыгина Дарья, 627 группа StrictSort 2067
Романов Алексей, группа 627 StrictSort 1734
n1from typing import MutableSequence, Protocol, Any, Sized, Callablen1from typing import Any, Callable, MutableSequence, Protocol, Sized
22
3class Comparable(Protocol):3class Comparable(Protocol):
44
5    def __lt__(self, other: Any) -> bool:5    def __lt__(self, other: Any) -> bool:
6        pass6        pass
7Sortable = MutableSequence[Comparable]7Sortable = MutableSequence[Comparable]
88
9def defkey(element: Comparable) -> Comparable:9def defkey(element: Comparable) -> Comparable:
10    if isinstance(element, Sized):10    if isinstance(element, Sized):
11        return len(element)11        return len(element)
12    return element12    return element
1313
14def strictsort(seq: Sortable, key: Callable[[Comparable], Comparable]=de14def strictsort(seq: Sortable, key: Callable[[Comparable], Comparable]=de
>fkey) -> Sortable:>fkey) -> Sortable:
15    for i in range(len(seq) - 1):15    for i in range(len(seq) - 1):
16        for j in range(i + 1, len(seq)):16        for j in range(i + 1, len(seq)):
t17            if key(seq[j]) < key(seq[i]):t17            if key(seq[i]) > key(seq[j]):
18                seq[i], seq[j] = (seq[j], seq[i])18                seq[i], seq[j] = (seq[j], seq[i])
19    return seq19    return seq
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op