a135 - 12250 - Language Detection
題目描述
題目要求根據輸入的單字判斷其語言種類。如果輸入的單字是 "HELLO", "HOLA", "HALLO", "BONJOUR", "CIAO", 或 "ZDRAVSTVUJTE",則輸出對應的語言名稱(ENGLISH, SPANISH, GERMAN, FRENCH, ITALIAN, RUSSIAN)。如果輸入的單字不在這些列表中,則輸出 "UNKNOWN"。
解題思路
這題的解法非常直接。程式碼使用一個 while 迴圈讀取輸入,直到讀取到 "#" 為止。在迴圈內部,使用一系列的 if-else if 語句來檢查輸入的單字是否與已知的語言單字匹配。如果匹配,則輸出對應的語言名稱。否則,輸出 "UNKNOWN"。
複雜度分析
- 時間複雜度: O(n) 其中 n 是輸入的行數。因為程式碼需要讀取每一行輸入並進行比較。
- 空間複雜度: O(1) 程式碼使用的額外空間是固定的,不隨輸入大小而變化。
程式碼
#include <iostream>
#include <string>
using namespace std;
int main(){
string a;
int i=0;
while(cin >> a){
i++;
if(a=="#"){
break;
}
else if(a=="HELLO"){
cout << "Case " << i << ": ENGLISH" << endl;
}
else if(a=="HOLA"){
cout << "Case " << i << ": SPANISH" << endl;
}
else if(a=="HALLO"){
cout << "Case " << i << ": GERMAN" << endl;
}
else if(a=="BONJOUR"){
cout << "Case " << i << ": FRENCH" << endl;
}
else if(a=="CIAO"){
cout << "Case " << i << ": ITALIAN" << endl;
}
else if(a=="ZDRAVSTVUJTE"){
cout << "Case " << i << ": RUSSIAN" << endl;
}
else{
cout << "Case " << i << ": UNKNOWN" << endl;
}
}
}