Re: [闲聊] 每日leetcode

楼主: JIWP (JIWP)   2024-04-17 18:49:19
※ 引述《sustainer123 (caster )》之铭言:
: ※ 引述《Rushia (早瀬ユウカの体操服 )》之铭言:
: : https://leetcode.com/problems/smallest-string-starting-from-leaf/description/
: : 988. Smallest String Starting From Leaf
: : 给你一个val范围在 [0:25] 的二元树,这些val分别对应 [a:z],找出从叶子节点到跟
: : 节点路径表示的最小字典顺序字串。
思路 :
一开始以为只要长度比较短就比较小
没注意到一样的prefix,搞了好久
思路就dfs去找,到leaf就去比较
对你版大神应该很简单
golang code
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func smallestFromLeaf(root *TreeNode) string {
ans := []byte{}
now := []byte{}
dfs(&ans, root, &now)
return string(ans)
}
func dfs(ans *[]byte, node *TreeNode, now *[]byte) {
if node == nil {
return
}
(*now) = append([]byte{byte(node.Val + 97)}, (*now)...)
if node.Left == nil && node.Right == nil {
if len(*ans) == 0 || string(*ans) > string(*now) {
(*ans) = make([]byte, len(*now))
copy(*ans, *now)
}
(*now) = (*now)[1:]
return
}
dfs(ans, node.Left, now)
dfs(ans, node.Right, now)
(*now) = (*now)[1:]
}
作者: oinishere (是oin捏)   2024-04-17 18:54:00
转职成功了没
作者: digua (地瓜)   2024-04-17 18:54:00
大师
作者: sustainer123 (caster)   2024-04-17 18:56:00
大师

Links booklink

Contact Us: admin [ a t ] ucptt.com