ETL

ETL

簡單

簡介

你在一間製作線上多人遊戲的公司工作,這款遊戲叫做 Lexiconia。

要玩這款遊戲,每位玩家會拿到 13 個字母,他們必須重新排列這些字母來組成單字。 不同的字母有不同的點數,因為用某些字母組成單字就是比其他字母容易。

這款遊戲最初以英文推出,但非常受歡迎,現在公司也想拓展到其他語言。

不同的語言需要支援不同的字母點數。 字母的點數取決於它在該語言中相較於其他字母的使用頻率。

例如,字母「C」在英文中相當常見,只值 3 分。 但在挪威文中它是很罕見的字母,值 10 分。

為了讓新增語言更容易,你的團隊需要改變遊戲中字母及其點數的儲存方式。

說明

你的任務是改變遊戲中字母及其點數的資料格式。

目前,字母是依照分數分組儲存的,形成一對多的對應關係。

  • 1 點:"A"、"E"、"I"、"O"、"U"、"L"、"N"、"R"、"S"、"T",
  • 2 點:"D"、"G",
  • 3 點:"B"、"C"、"M"、"P",
  • 4 點:"F"、"H"、"V"、"W"、"Y",
  • 5 點:"K",
  • 8 點:"J"、"X",
  • 10 點:"Q"、"Z",

這裡需要改成把每個字母各自與其分數一起儲存,形成一對一的對應關係。

  • "a" 值 1 點。
  • "b" 值 3 點。
  • "c" 值 3 點。
  • "d" 值 2 點。
  • 依此類推。

作為這項變更的一部分,團隊也決定把字母改為小寫,而不再是大寫。

Note

如果你想看看資料原本的結構,以及它需要怎麼改變,可以看看測試套件裡的範例。

透過 GitHub 編輯 連結會在新視窗或分頁中開啟
C++ Exercism

準備好開始 ETL 了嗎?

註冊 Exercism,透過 19 個概念100 個練習 和真人引導來學習並精通 C++,全部免費。