classSolution: defvalidInt(self, s): if s and int(s) < 256: if s[0] != '0'or s == '0': returnTrue returnFalse defrestoreIpAddresses(self, s: str): res = [s] for _ in range(3): res_now = [] for si in res: last = si.split('.')[-1] idx = len(si) - len(last) for i in range(len(last)): if i > 2: break if int(last[:i + 1]) < 256: si_now = si[: idx + i + 1] + '.' + si[idx + i + 1 :] res_now.append(si_now) if last[0] == '0': break res = res_now
res_now = [] for si in res: last = si.split('.')[-1] if self.validInt(last): res_now.append(si)