LeetCode 93 Restore IP Addresses(Python详解及实现)
2017-08-10 13:57
971 查看
【题目】
Given a string containing only digits,restore it by returning all possible valid IP address combinations.
For example:
Given "25525511135",
return ["255.255.11.135","255.255.111.35"]. (Order does not matter)
给定一个只有数字的字符串,将其转化为合法的IP地址,并存起来。
例如:输入:"25525511135",
输出:["255.255.11.135", "255.255.111.35"](排列顺序不影响)
【思路】
这个题可以运用dfs,那么回溯算法的循环和终止条件是什么呢?
IP地址由四部分构成,可以设置一个变量segment,当segment = 4时,可结束循环,将结果添加到列表中;
每个部分数值均值0---255之间,因此每次回溯最多需要判断3个元素,即当前元素i---i+2这三位数字。
【Python实现】
# -*- coding: utf-8 -*-
"""
Created on Thu Aug 10 11:26:03 2017
@author: Administrator
"""
class Solution(object):
def restoreIpAddresses(self, s):
"""
:type s: str
:rtype: List[str]
"""
def dfs(s, segment, res, ip):
if segment == 4:
if s == '':
res.append(ip[1:])
return
for i in range(1,4):
if i <= len(s):
if int(s[:i]) <= 255:
dfs(s[i:],segment+1,res,ip+'.'+s[:i])
if s[0] == '0':
break
res = []
dfs(s, 0, res, '')#segment 初始化为0
return res
if __name__ == '__main__':
S= Solution()
s= "25525511135"
S.restoreIpAddresses(s)
Given a string containing only digits,restore it by returning all possible valid IP address combinations.
For example:
Given "25525511135",
return ["255.255.11.135","255.255.111.35"]. (Order does not matter)
给定一个只有数字的字符串,将其转化为合法的IP地址,并存起来。
例如:输入:"25525511135",
输出:["255.255.11.135", "255.255.111.35"](排列顺序不影响)
【思路】
这个题可以运用dfs,那么回溯算法的循环和终止条件是什么呢?
IP地址由四部分构成,可以设置一个变量segment,当segment = 4时,可结束循环,将结果添加到列表中;
每个部分数值均值0---255之间,因此每次回溯最多需要判断3个元素,即当前元素i---i+2这三位数字。
【Python实现】
# -*- coding: utf-8 -*-
"""
Created on Thu Aug 10 11:26:03 2017
@author: Administrator
"""
class Solution(object):
def restoreIpAddresses(self, s):
"""
:type s: str
:rtype: List[str]
"""
def dfs(s, segment, res, ip):
if segment == 4:
if s == '':
res.append(ip[1:])
return
for i in range(1,4):
if i <= len(s):
if int(s[:i]) <= 255:
dfs(s[i:],segment+1,res,ip+'.'+s[:i])
if s[0] == '0':
break
res = []
dfs(s, 0, res, '')#segment 初始化为0
return res
if __name__ == '__main__':
S= Solution()
s= "25525511135"
S.restoreIpAddresses(s)
相关文章推荐
- LeetCode(93) Restore IP Addresses
- [leetcode 93] Restore IP Addresses
- LeetCode 93 Restore IP Addresses
- LeetCode(93) Restore IP Addresses
- LeetCode93 Restore IP Addresses
- LeetCode93——Restore IP Addresses
- leetcode[93]Restore IP Addresses
- Leetcode(93): Restore IP Addresses
- LeetCode - 93 Restore IP Addresses
- [leetcode]Restore IP Addresses @ Python
- 【LeetCode】C# 93、Restore IP Addresses
- leetcode做题总结,题目Restore IP Addresses 93
- LeetCode 93 Restore IP Addresses
- leetcode 93 .Restore IP Addresses
- leetcode 93: Restore IP Addresses
- leetcode-93 Restore IP Addresses
- 【LeetCode with Python】 Restore IP Addresses
- LeetCode-93-Restore IP Addresses 暴力
- LeetCode93—Restore IP Addresses
- [Leetcode][python]Restore IP Addresses