class : defcommonChars(self, A: List[str]) -> List[str]: if len(A) == 0: return [] from collections import Counter d = Counter(A[0]) for i in range(1, len(A)): cur = Counter(A[i]) for k, v in d.items(): d[k] = min(d[k], cur.get(k, 0)) ret = [] for k, v in d.items(): ret += [k] * v return ret
class : defisValid(self, S: str) -> bool: if len(S) == 0: returnTrue flag = False new_S = "" i = 0 while i < len(S): if S[i: i + 3] == "abc": i += 3 flag = True continue else: new_S += S[i] i += 1 ifnot flag: returnFalse if len(new_S) == 0: returnTrue return self.isValid(new_S)
1004. Max Consecutive Ones III
记录每个0出现的位置。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
class : deflongestOnes(self, a: List[int], k: int) -> int: zero_pos = [] f = [] for i in range(len(a)): if a[i] == 0: zero_pos.append(i) if len(zero_pos) <= k: f.append(i + 1) else: f.append(i - zero_pos[- k - 1]) ret = 0 for x in f: ret = max(ret, x) return ret
近期评论