-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path93.py
29 lines (25 loc) · 1021 Bytes
/
93.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# leetcode 93 复原IP地址
class Solution:
def restoreIpAddresses(self, s: str) -> List[str]:
result = []
self.backTracking(s, "", result, 0, 1)
return result
def backTracking(self, s, path, result, startIndex, parts):
if parts == 4:
if self.isValidNum(s, startIndex, len(s) - 1):
path += s[startIndex:]
result.append(path[:])
return
for i in range(startIndex, len(s)):
if self.isValidNum(s, startIndex, i):
self.backTracking(s, path + s[startIndex:i + 1] + '.', result, i + 1, parts + 1)
else:
break
def isValidNum(self, number, left, right):
if left > right:
return False
if left < right and number[left] == '0': # 如果数字以'0'开头且长度大于1,则无效
return False
if int(number[left:right + 1]) > 255: # 如果数字大于255,则无效
return False
return True