Given a string containing only digits, restore it by returning all possible valid IP address combinations.
For example:
Given
Given
"25525511135"
,
return
["255.255.11.135", "255.255.111.35"]
. (Order does not matter)Solution:
class Solution: # @param s, a string # @return a list of strings def restoreIpAddresses(self, s): solution = [] self.restoreIpAddressesRec(s,0,0,[],solution) return solution def restoreIpAddressesRec(self, s, index, octets, tempSolution, solution): if len(s)-index<4-octets: return if len(s)-index>3*(4-octets): return if octets==4: if index== len(s): tempSolution.pop() solution.append("".join(tempSolution)) tempSolution.append('.') return for size in range(1,4): if s[index]=='0' and size>1: break if int(s[index:index+size])>255: break tempSolution.append(s[index:index+size]) tempSolution.append('.') self.restoreIpAddressesRec(s,index+size,octets+1,tempSolution, solution) tempSolution.pop() tempSolution.pop()
No comments :
Post a Comment