ZeroJudge A135: Language Detection

同題:UVa 12250 – Language Detection

英文、西班牙文、德文、法文、義大利文及俄文為歐盟國家中最盛行的 6 種語言。下圖顯示英語人口在歐洲各國的密度。這些語言都有不同的字來表示英文的「HELLO」。例如西班牙文中等同於英文「HELLO」的字是「HOLA」,而德文、法文、義大利文及俄文中意思為 (或相近) 「HELLO」的字依序為「HALLO」、「BONJOUR」、「CIAO」和「ZDRAVSTVUJTE」。

你在本題中的任務非常簡單。給你以上的幾個單字之一或是其他的單字,你需要辨識它是哪一種語言。

ZeroJudge A135: Language Detection
英語人口於歐洲各國密度
語言HELLO 翻譯
EnglishHELLO
SpanishHOLA
GermanHALLO
FrenchBONJOUR
ItalianCIAO
RussianZDRAVSTVUJTE
Hello 語言對照表

範例測資

範例輸入範例輸出
EOF 輸入,含有大約 2000 行的輸入。每行含有一個字串 S。你可以假設所有的字母都是大寫英文字母,且字串的最大長度為 14。輸入以僅含有一個「#」的一行作為結束,該行不需處理。除了最後一行以外,每一行輸入都要有一行輸出。
這行輸出含有輸出的序號及語言名稱。如果輸入字串是表格以外的字串則印出字串「UNKNOWN」。所有的輸出字串也都是大寫。
HELLO
HOLA
HALLO
BONJOUR
CIAO
ZDRAVSTVUJTE
#
Case 1: ENGLISH
Case 2: SPANISH
Case 3: GERMAN
Case 4: FRENCH
Case 5: ITALIAN
Case 6: RUSSIAN

解題思路

使用 If 來判斷該字串的語言為何,可以使用一個 Int 變數放在 EOF 外面來確認目前是第幾個Case。

範例程式碼-ZeroJudge A135: Language Detection

#include <iostream>
using namespace std;

int main() {
  cin.sync_with_stdio(0);
  cin.tie(0);
  int count = 1;
  string str;
  while (cin >> str)
    {
      if (str == "#") break;
      else
      {
        if (str == "HELLO") cout << "Case " << count << ": ENGLISH" << endl;
        else if (str == "HOLA") cout << "Case " << count << ": SPANISH" << endl;
        else if (str == "HALLO") cout << "Case " << count << ": GERMAN" << endl;
        else if (str == "BONJOUR") cout << "Case " << count << ": FRENCH" << endl;
        else if (str == "CIAO") cout << "Case " << count << ": ITALIAN" << endl;
        else if (str == "ZDRAVSTVUJTE") cout << "Case " << count << ": RUSSIAN" << endl;
        else cout << "Case " << count << ": UNKNOWN" << endl;
        count++;
      }
    }
}

//ZeroJudge A135
//Dr. SeanXD

發佈留言