程序员面试金典 - 面试题 17.07. 婴儿名字(并查集)
生活随笔
收集整理的這篇文章主要介紹了
程序员面试金典 - 面试题 17.07. 婴儿名字(并查集)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
每年,政府都會公布一萬個最常見的嬰兒名字和它們出現的頻率,也就是同名嬰兒的數量。
有些名字有多種拼法,例如,John 和 Jon 本質上是相同的名字,但被當成了兩個名字公布出來。
給定兩個列表,一個是名字及對應的頻率,另一個是本質相同的名字對。
設計一個算法打印出每個真實名字的實際頻率。
注意,如果 John 和 Jon 是相同的,并且 Jon 和 Johnny 相同,則 John 與 Johnny 也相同,即它們有傳遞和對稱性。
在結果列表中,選擇字典序最小的名字作為真實名字。
示例: 輸入:names = ["John(15)","Jon(12)","Chris(13)","Kris(4)","Christopher(19)"], synonyms = ["(Jon,John)","(John,Johnny)","(Chris,Kris)","(Chris,Christopher)"] 輸出:["John(27)","Chris(36)"]提示: names.length <= 100000來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/baby-names-lcci
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
- 參考:并查集(Disjoint-Set)
相關題目:
LeetCode 959. 由斜杠劃分區域(并查集)
LeetCode 1202. 交換字符串中的元素(并查集)
寫的比較差,效率比較低
總結
以上是生活随笔為你收集整理的程序员面试金典 - 面试题 17.07. 婴儿名字(并查集)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员面试金典 - 面试题 16.21.
- 下一篇: LeetCode 397. 整数替换(递