l960 - 星期幾?
題目描述
題目要求將英文的星期幾名稱轉換為對應的數字,Sunday 為 0,Monday 為 1,依此類推,Saturday 為 6。如果輸入的字串不是有效的星期幾名稱,則輸出 "error"。
解題思路
此題的解題思路是使用一個 Hash Table (std::map) 來儲存星期幾名稱和對應數字的映射關係。程式首先建立一個包含所有有效星期幾名稱及其數字的 map。然後,程式讀取輸入字串,並在 map 中查找該字串。如果找到,則輸出對應的數字;否則,輸出 "error"。
複雜度分析
- 時間複雜度: O(1)
- 空間複雜度: O(1)
程式碼
#include <iostream>
#include <map>
#include <string>
int main() {
std::map<std::string, int> days = {
{"Sunday", 0},
{"Monday", 1},
{"Tuesday", 2},
{"Wednesday", 3},
{"Thursday", 4},
{"Friday", 5},
{"Saturday", 6}
};
std::string input;
std::getline(std::cin, input);
if (days.count(input)) {
std::cout << days[input] << '\n';
} else {
std::cout << "error" << '\n';
}
return 0;
}