华为社会招聘-软件特战队机考题(B)

1. 有效的ip组合数量。  输入 [0-9]的一串数字, 长度最长为10, 可重复使用。 求总共能组成多少个有效IP:
比如 输入"23", 每一个IP段 可以使用10个组成的数字: 2,  22,222, 223, 232, 233, 3, 32, 33, 33, 23.
所以总的有效的IP总数为: 10 * 10 * 10 * 10.

这个题就是排列组合, 和39很像。

2. 给你输入[]string数组的linux文件path, 让你打印成 Tree . 有缩进那种。 输入的文件路径 可能会有相同的上层目录, 所以要做合并。

两个题难度都不大。
全部评论
这是 od 吗?hr 和我说正式
点赞 回复 分享
发布于 2024-12-01 00:04 北京
package main import ( "bufio" "fmt" "os" "sort" "strings" ) func main() { snr := bufio.NewScanner(os.Stdin) snr.Scan() str := snr.Text() str = strings.Trim(str, " ") nums := []int{} for i := 0; i < len(str); i++ { nums = append(nums, int(str[i]-'0')) } sort.Ints(nums) cnt := helper(nums) //fmt.Println(cnt) sum := cnt * cnt * cnt * cnt fmt.Println(sum) } func helper(nums []int) int { ans := 0 row := 0 var dfs func(start int) dfs = func(start int) { ans++ fmt.Println(row) //fmt.Println("row:", row, ans) for j := start; j < len(nums); j++ { if row*10+nums[j] > 255 { continue } if row == 0 &amp;&amp; nums[j] == 0 { continue } row = row*10 + nums[j] dfs(start) row = row / 10 } } dfs(0) //fmt.Println("nums:", nums) if nums[0] == 0 { return ans } return ans - 1 }
点赞 回复 分享
发布于 2024-09-13 20:55 四川

相关推荐

白火同学:1、简历可以浓缩成一页,简历简历先要“简”方便HR快速过滤出有效信息,再要“历”用有效信息突出个人的含金量。 2、教育背景少了入学时间~毕业时间,HR判断不出你是否为应届生。 3、如果你的平台账号效果还不错,可以把账号超链接或者用户名贴到对应位置,一是方便HR知道你是具体做了什么内容的运营,看到账号一目了然,二是口说无凭,账号为证,这更有说服力。
面试被问期望薪资时该如何...
点赞 评论 收藏
分享
当年还在美团那个倒霉的&nbsp;Peppr&nbsp;团队工作时,我一直有个疑问:这群人每天到底在自嗨什么。每次开会一堆人围着一堆“看起来很高级”的文档转,模板统一、名词复杂、页数感人,每一页都在暗示一件事:“你不懂,是因为你不专业。”但现实是——代码照样写在&nbsp;💩&nbsp;山上,该出问题还是会出问题,这真的很逗,系统一出问题,文档的唯一作用就是证明:“我们当初确实认真写过文档。”所以本质区别到底是什么?是代码质量提升了,还是大家在精神层面完成了一次“工程师&nbsp;cosplay”?有句话说得好潮水退去才知道谁在裸泳。还记得当时的马哥、明哥(图&nbsp;1&nbsp;左)最爱反复强调一句话:“所有场景一定要想到。”、“这个场景为什么没考虑到?”不过他们这些话我是真的听进去了。不然我也不会在一年多前就说:这个项目活不过两年。顺带一提,那段时间还有个固定节目。每次下楼,总能听见我明哥在吐槽不同的人。我从他身后绕过去,经常能听到他一边抽烟一边说:“xx&nbsp;这小子太坑了,回头我一定要跟马哥说说。”于是深谙人情世故但真不会抽烟的我也会从口袋掏出一支低尼古丁含量的烟给自己点上,假意自己什么都没听到什么都不知道,只是来抽烟的。后来我才明白,这可能也是团队文化的一部分:问题永远在别人身上,而我们,永远在复盘里😂。
秋招白月光
点赞 评论 收藏
分享
评论
3
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务