classInterval: def__init__(self, a=0, b=0): self.start = a self.end = b
classSolution: defsolve(self , n , k , str1 , str2 ): m = 0 for i in range(n): m += (str1[i] == str2[i]) return Interval(a = max(0, m - (n - k)), b = min(m, k) + n - max(m, k))
sol = Solution() ret = sol.solve(3, 1, "ABC", "CCC") print(ret.start, ret.end)
for i in range(N): for j in range(N): if s1[i][j] == '0': res.append(s2[i][j]) self.rotate(s1, N) for i in range(N): for j in range(N): if s1[i][j] == '0': res.append(s2[i][j]) self.rotate(s1, N)
for i in range(N): for j in range(N): if s1[i][j] == '0': res.append(s2[i][j]) self.rotate(s1, N)
for i in range(N): for j in range(N): if s1[i][j] == '0': res.append(s2[i][j]) return''.join(res)
s1 = ["1101","1010","1111","1110"] s2 = ["ABCD","EFGH","IJKL","MNPQ"] sol = Solution() ret = sol.rotatePassword(s1, s2) print(ret)
classSolution: defcalcProb(self , n ): if n <= 3: return1 dp = [0for _ in range(n+1)] dp[1] = 1; dp[2] = 1; dp[3] = 1 for i in range(4, n+1): for k in (1,2,3): val = (0.5 * (1 - dp[i-k]) + 0.5 * (1 - dp[i-k-1])) dp[i] = max(dp[i], val) return dp[n]