leetcode-93-复原ip地址
生活随笔
收集整理的這篇文章主要介紹了
leetcode-93-复原ip地址
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述:
方法一:暴力法
class Solution: def restoreIpAddresses(self, s: str) -> List[str]: n = len(s) res = [] # 判讀是否滿足ip的條件 def helper(tmp): if not tmp or (tmp[0] == "0" and len(tmp) > 1) or int(tmp) > 255: return False return True # 三個循環,把數字分成四份 for i in range(3): for j in range(i + 1, i + 4): for k in range(j + 1, j + 4): if i < n and j < n and k < n: tmp1 = s[:i + 1] tmp2 = s[i + 1:j + 1] tmp3 = s[j + 1:k + 1] tmp4 = s[k + 1:] # print(tmp1, tmp2, tmp3, tmp4) if all(map(helper, [tmp1, tmp2, tmp3, tmp4])): res.append(tmp1 + "." + tmp2 + "." + tmp3 + "." + tmp4) return res
方法二;回溯
class Solution: def restoreIpAddresses(self, s: str) -> List[str]: res = [] n = len(s) def backtrack(i, tmp, flag): if i == n and flag == 0: res.append(tmp[:-1]) return if flag < 0: return for j in range(i, i + 3):if j < n: if i == j and s[j] == "0": backtrack(j + 1, tmp + s[j] + ".", flag - 1) break if 0 < int(s[i:j + 1]) <= 255: backtrack(j + 1, tmp + s[i:j + 1] + ".", flag - 1) backtrack(0, "", 4) return res
?
轉載于:https://www.cnblogs.com/oldby/p/11181358.html
總結
以上是生活随笔為你收集整理的leetcode-93-复原ip地址的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大话设计模式笔记(七)の原型模式
- 下一篇: 深入理解Java虚拟机——第二章——Ja