牛客题霸 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地址的主要内容,如果未能解决你的问题,请参考以下文章

牛客题霸 NC28 最小覆盖子串

牛客题霸 NC10 大数乘法

牛客题霸 NC26 括号生成

牛客题霸 NC18 顺时针旋转矩阵

牛客题霸 NC23 划分链表

牛客题霸 NC17 最长回文子串