1class RunewordsCalculator:
2 def __init__(self, runes):
3 self.runes = runes
4 self.inventar = []
5 self.returned = set()
6
7 def add_runes(self, runes):
8 self.inventar.extend(runes)
9
10 def _continuous(self, target):
11 if not target:
12 return True
13
14 index = 0
15 for rune in self.inventar:
16 if rune == target[index]:
17 index += 1
18 if index == len(target):
19 return True
20 return False
21
22 def __iter__(self):
23 return self
24
25 def __next__(self):
26 if len(self.returned) == len(self.runes):
27 raise StopIteration("хвърля боба")
28 for name, comps in self.runes.items():
29 if name not in self.returned:
30 if self._continuous(comps):
31 self.returned.add(name)
32 return name
33 return None
.......
----------------------------------------------------------------------
Ran 7 tests in 0.000s
OK