题解 | #数字字符串转化成IP地址#

数字字符串转化成IP地址

https://www.nowcoder.com/practice/ce73540d47374dbe85b3125f57727e1e

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param s string字符串
# @return string字符串一维数组
#
class Solution:
    def restoreIpAddresses(self, s: str):
        # write code here
        res = []
        path = []
        n = len(s)
		# 回溯这里还是索引好用
        def backtrace(start, end):
            if len(path) > 4: # 长度大于4说明太长了
                return
            if len(path) == 4 and start == n: # 这样才正好
                res.append(".".join(path[:]))
            for i in range(start, end): # 起始和终止传进去一个一个找
                cur_s = s[start : i + 1]
                if len(cur_s) > 1 and cur_s[0] == "0": # 超过1位以0为首的不要
                    return
                if 0 <= int(cur_s) <= 255:
                    path.append(cur_s) # 满足条件加入path
                    backtrace(i + 1, end) # 递归,接着找
                    path.pop() # 回溯

        backtrace(0, n)
        return res

全部评论

相关推荐

Natrium_:这时间我以为飞机票
点赞 评论 收藏
分享
10-27 17:26
东北大学 Java
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务