Каплан Владимир Сергеевич 611 ВМК CompactPairs 14686
Демихов Валентин, 611 группа CompactPairs 14019
f1import stringf1import string
22
3class Pairs:3class Pairs:
n4    _a = list(string.ascii_lowercase) + list(string.ascii_uppercase)n4    _alphabet = list(string.ascii_lowercase) + list(string.ascii_upperca
 >se)
5    _m = {}5    _mapping_static = {}
66
n7    def __init__(self, s):n7    def __init__(self, size):
8        if s not in Pairs._m:8        if size not in Pairs._mapping_static:
9            Pairs._m[s] = {c: (s + i - 1) % 52 + 1 for i, c in enumerate9            Pairs._mapping_static[size] = {char: (size + idx - 1) % 52 +
>(self._a)}> 1 for idx, char in enumerate(self._alphabet)}
10        self._d = Pairs._m[s]10        self._mapping = Pairs._mapping_static[size]
1111
n12    def __setattr__(self, k, v):n12    def __setattr__(self, attr, val):
13        if k in self._a:13        if attr in self._alphabet:
14            self._d[k] = v14            self._mapping[attr] = val
15        else:15        else:
n16            super().__setattr__(k, v)n16            super().__setattr__(attr, val)
1717
n18    def __getattr__(self, k):n18    def __getattr__(self, attr):
19        if k in self._d:19        if attr in self._mapping:
20            return self._d[k]20            return self._mapping[attr]
21        raise AttributeError()21        raise AttributeError()
2222
23    def __repr__(self):23    def __repr__(self):
t24        return ' '.join(sorted(self._a, key=lambda x: self._d[x]))t24        return ' '.join(sorted(self._alphabet, key=lambda x: self._mappi
 >ng[x]))
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op