ZeroJudge L960: 星期幾?

文文不喜歡英文,英文有太多的名字了!月份有名字 (January, February, …),星期有名字 (Sunday, Monday, …),連銅板也有名字 (Penny, Dime, …)。

今天他又被一堆 Sunday, Monday, 什麼什麼 day 的給弄糊塗了,你可以幫他轉成數字嗎?

範例測資

範例輸入範例輸出
輸入只有一行,含有一個要轉換的字串。如果輸入的是「Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday」等其中一個字串,請依序轉成 0, 1, 2, 3, 4, 5, 6 的整數。如果不是上述的字串之一,請輸出「error」。
Sunday0
Twosdayerror

解題思路

使用Map將每個日期的索引值存起來,如果讀到的字串在Map中沒有值 (沒有值的話取 Value 的時候會回傳 0) 的話就輸出error,反之則輸出Map的值。

範例程式碼-ZeroJudge L960: 星期幾?

#include <iostream>
#include <map>
using namespace std;

int main() {
    map<string, int>MAP;
    MAP["Sunday"] = 1;
    MAP["Monday"] = 2;
    MAP["Tuesday"] = 3;
    MAP["Wednesday"] = 4;
    MAP["Thursday"] = 5;
    MAP["Friday"] = 6;
    MAP["Saturday"] = 7;
    string str;
    cin >> str;
    if (MAP[str] != 0) cout << MAP[str]-1 << endl;
    else cout << "error" << endl;
}

//ZeroJudge L960
//Dr. SeanXD

發佈留言