你受僱開發Noble Knots,這是貴族專屬、最新最夯的交友軟體!
歷經數百年的王室通婚,事情變得……複雜。
為了避免任何_哎呀,我們是雙胞胎_的窘境,你的任務就是打造一套系統,檢查兩個人之間的血緣關係有多近。
Noble Knots的靈感來自冰島的「Islendinga-App」,它背後有一個資料庫,記錄了自冰島定居時期以來所有已知的冰島人親屬關係。 你的演算法會判斷王室族譜中兩個人之間的分隔度數。
你的應用程式能促成最完美的王室姻緣嗎?
你的任務是判斷家族樹中兩個人之間的分隔度數。 這有點像流行文化中的說法:每位好萊塢演員都在與 Kevin Bacon 相距六度之內。
給定以下家族樹:
┌──────────┐ ┌──────────┐ ┌───────────┐
│ Helena │ │ Erdős ├─────┤ Shusaku │
└───┬───┬──┘ └─────┬────┘ └────┬──────┘
┌───┘ └───────┐ └───────┬───────┘
┌─────┴────┐ ┌────┴───┐ ┌─────┴────┐
│ Isla ├─────┤ Tariq │ │ Kevin │
└────┬─────┘ └────┬───┘ └──────────┘
│ │
┌────┴────┐ ┌────┴───┐
│ Uma │ │ Morphy │
└─────────┘ └────────┘
Tariq 和 Uma 之間的分隔度數是 2(Tariq → Isla → Uma)。 Isla 和 Kevin 之間沒有已知關係,因為給定的資料中沒有連結。 Uma 和 Isla 之間的分隔度數是 1。
Isla 和 Tariq 是手足,兩人之間的分隔度數是 1。 同樣地,這個實作會回報你和父親的兄弟之間的分隔度數是 2。