网易笔试求解

第一道题:二叉树字符编码找重复子树

给定一棵中序遍历的二叉树,如果当前树为空则表示为X,如果不为空则表示为(left_tree)cur_value(right_tree),其中left_tree和right_tree分别表示按此规则序列化之后的左右子树字符串。找出重复子树的数量,相同子树只计算一次。

输入:

字符编码的二叉树

输出:

重复子树的个数

例子:

输入:

((X)2(X))1(((X)4(X))3((X)2(X)))

输出:

1

解释:只有相同节点2

这题我的做法就是中心扩展找出所有可能的子树,利用哈希表来发现重复的子树,但是不知道为什么只过了66.7,并没有提示是超时等问题,想问问大佬的解决方案。

第二题:归元等运算

定义运算规则(=)为归元等,对于字符串string1和string2分别去重之后构成的字符集合S1和S2,如果S1和S2中的元素完全相等,则string1和string2就具有归元等的关系,如aabbc233 (=) a32bcca,因为两个字符串都是由a,b,c,2和3这五个字符组成的。

现给出一个字符串A和一组字符串B[n],问有多少种i和j的选择,可以满足等式B[i] + A (=) B[j]

输入:

第一行:字符串A

第二行:B中字符串的数量

第三行至最后一行:每行一个字符串:B1, B2, B3 ...

输出:

一共多少种组合,限制i不等于j,但是Bi可以等于Bj

这题我就疯狂哈希模拟了一波直接超时,求大佬的解决方案

#网易##网易春招##网易笔试##笔试##算法题#
全部评论
归元这道题用map<string>存储string和去重后的字符串集合;使用sort+unique排序去重的字符串;遍历时通过某种规则计算结果,详见 https://www.nowcoder.com/discuss/472115938377158656?sourceSSR=users</string>
2 回复 分享
发布于 2023-04-02 19:01 辽宁
第二题一样,不过我用set去存结果,只过了11%
1 回复 分享
发布于 2023-04-02 12:31 广东
这两题我也非常暴力。第一个我干脆直接数有多少个重复数字了也 66。第二个模拟超时55。😂
1 回复 分享
发布于 2023-04-02 12:49 北京
大佬今天最后一题是用的dp吗
1 回复 分享
发布于 2023-04-02 12:54 福建
第一个遇左括号推进stack,遇右括号发现一个子树,哈希表记录子树的次数可以过,第二个怎么弄求
1 回复 分享
发布于 2023-04-02 12:58 美国
大佬是投的雷火吗,我也投的雷火没收到笔试
点赞 回复 分享
发布于 2023-04-02 14:40 四川

相关推荐

杨柳哥:这不是普通人,那这个钱的是天才
点赞 评论 收藏
分享
点赞 1 评论
分享
牛客网
牛客企业服务