牛客题霸 NC20 数字字符串转化成IP地址
Posted Starzkg
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了牛客题霸 NC20 数字字符串转化成IP地址相关的知识,希望对你有一定的参考价值。
https://www.nowcoder.com/practice/ce73540d47374dbe85b3125f57727e1e
解决方案
Go
func restoreIpAddresses(s string) []string {
res = []string{}
segSlice = make([]string, SEG_COUNT)
dfs(s, 0)
return res
}
const SEG_COUNT = 4
var (
res []string
segSlice []string
)
func dfs(s string, seg_index int) {
if len(s) == 0 || seg_index == SEG_COUNT {
if len(s) == 0 && seg_index == SEG_COUNT {
res = append(res, strings.Join(segSlice, "."))
}
return
}
addr := 0
for j := 0; j < len(s); j++ {
addr = addr*10 + int(s[j]-'0')
if addr > 0 && addr <= 255 {
segSlice[seg_index] = s[:j+1]
dfs(s[j+1:], seg_index+1)
} else {
if addr == 0 {
segSlice[seg_index] = s[:j+1]
dfs(s[j+1:], seg_index+1)
}
break
}
}
}
参考文章
以上是关于牛客题霸 NC20 数字字符串转化成IP地址的主要内容,如果未能解决你的问题,请参考以下文章