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