日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

力扣:复原IP地址

發布時間:2025/6/15 编程问答 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 力扣:复原IP地址 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?給定一個只包含數字的字符串,復原它并返回所有可能的 IP 地址格式。

示例:

輸入: "25525511135" 輸出: ["255.255.11.135", "255.255.111.35"] const SEG_COUNT = 4var (ans []stringsegments []int )func restoreIpAddresses(s string) []string {segments = make([]int, SEG_COUNT)ans = []string{}dfs(s, 0, 0)return ans }//segStart 對應字符串下標 //segId, 對應段數 func dfs(s string, segId, segStart int) {// 如果找到了 4 段 IP 地址并且遍歷完了字符串,那么就是一種答案//ip地址共4個段if segId == SEG_COUNT {if segStart == len(s) {ipAddr := ""for i := 0; i < SEG_COUNT; i++ {//遍歷這個數組取出IP地址ipAddr += strconv.Itoa(segments[i])if i != SEG_COUNT - 1 {ipAddr += "."}}ans = append(ans, ipAddr)}return}// 如果還沒有找到 4 段 IP 地址就已經遍歷完了字符串,那么提前回溯if segStart == len(s) {return}// 由于不能有前導零,如果當前數字為 0,那么這一段 IP 地址只能為 0if s[segStart] == '0' {segments[segId] = 0dfs(s, segId + 1, segStart + 1)}// 一般情況,枚舉每一種可能性并遞歸addr := 0for segEnd := segStart; segEnd < len(s); segEnd++ {//取出當前的值addr = addr * 10 + int(s[segEnd] - '0')if addr > 0 && addr <= 0xFF {//存儲對應的IP值segments[segId] = addrdfs(s, segId + 1, segEnd + 1)} else {break}} }

?

總結

以上是生活随笔為你收集整理的力扣:复原IP地址的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。