您好,欢迎来到五一七教育网。
搜索
您的当前位置:首页java实现复原IP地址_力扣:复原IP地址 - osc_494omtst的个人空间 - OSCHINA - 中文开源技术交流社区...

java实现复原IP地址_力扣:复原IP地址 - osc_494omtst的个人空间 - OSCHINA - 中文开源技术交流社区...

来源:五一七教育网

示例:

输入: "25525511135"

输出: ["255.255.11.135", "255.255.111.35"]

const SEG_COUNT = 4

var (

ans []string

segments []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) {

if segId == SEG_COUNT {

if segStart == len(s) {

ipAddr := ""

for i := 0; i < SEG_COUNT; i++ {

ipAddr += strconv.Itoa(segments[i])

if i != SEG_COUNT - 1 {

ipAddr += "."

}

}

ans = append(ans, ipAddr)

}

return

}

if segStart == len(s) {

return

}

if s[segStart] == '0' {

segments[segId] = 0

dfs(s, segId + 1, segStart + 1)

}

// 一般情况,枚举每一种可能性并递归

addr := 0

for segEnd := segStart; segEnd < len(s); segEnd++ {

//取出当前的值

addr = addr * 10 + int(s[segEnd] - '0')

if addr > 0 && addr <= 0xFF {

//存储对应的IP值

segments[segId] = addr

dfs(s, segId + 1, segEnd + 1)

} else {

break

}

}

}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 517ttc.cn 版权所有 赣ICP备2024042791号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务