3
h: for each possible number (node), we have two possible operations (add, rotate)4
it seems to be a 2^100 possible number, however, note:5
1) add a to number of odd index, we will get to the same number after 10 rounds of add6
2) s has even length, if b is odd, we can get the same number after n round7
3) for each shift, we would get different number at even index in 10 rounds9
so we would have 10 * n * 10 number at most, then we can use BFS + memo16
def findLexSmallestString(self, s: str, a: int, b: int) -> str:18
deque = collections.deque([s])22
curr = deque.popleft()26
ad = self.add_(curr, a)32
ro = self.rotate_(curr, b)41
for idx, i in enumerate(s):43
num = (int(i) + a) % 1050
def rotate_(self, s, b):52
res = s[idx:] + s[0:idx]