你在一間製作線上多人遊戲的公司工作,這款遊戲叫做 Lexiconia。
要玩這款遊戲,每位玩家會拿到 13 個字母,他們必須重新排列這些字母來組成單字。 不同的字母有不同的點數,因為用某些字母組成單字就是比其他字母容易。
這款遊戲最初以英文推出,但非常受歡迎,現在公司也想拓展到其他語言。
不同的語言需要支援不同的字母點數。 字母的點數取決於它在該語言中相較於其他字母的使用頻率。
例如,字母「C」在英文中相當常見,只值 3 分。 但在挪威文中它是很罕見的字母,值 10 分。
為了讓新增語言更容易,你的團隊需要改變遊戲中字母及其點數的儲存方式。
你的任務是改變遊戲中字母及其點數的資料格式。
目前,字母是依照分數分組儲存的,形成一對多的對應關係。
這裡需要改成把每個字母各自與其分數一起儲存,形成一對一的對應關係。
作為這項變更的一部分,團隊也決定把字母改為小寫,而不再是大寫。
如果你想看看資料原本的結構,以及它需要怎麼改變,可以看看測試套件裡的範例。
AWK 很常被當作 ETL 工具使用(讀取輸入、處理,然後寫出一份「報告」)。 實際上,輸入格式往往有點棘手。 這個練習會試著模擬這種情況,使用不一致的輸入格式,讓你的程式必須將它們正規化。