1. 程式人生 > 其它 >蒜頭君學英語 - 計蒜客

蒜頭君學英語 - 計蒜客

技術標籤:計蒜客level3課後題setc++字串

目錄

題目

題解


題目

  • 2000ms
  • 131072K

蒜頭君快要考託福了,這幾天,蒜頭君每天早上都起來記英語單詞。花椰妹時不時地來考一考蒜頭君:花椰妹會詢問蒜頭君一個單詞,如果蒜頭君背過這個單詞,蒜頭君會告訴花椰妹這個單詞的意思,不然蒜頭君會跟花椰妹說還沒有背過。單詞是由連續的大寫或者小寫字母組成。注意單詞中字母大小寫是等價的。比如"You""you"是一個單詞。

輸入格式

首先輸入一個n(1≤n≤100000)表示事件數。接下來n行,每行表示一個事件。每個事件輸入為一個整數d和一個單詞word(單詞長度不大於

2020),用空格隔開。如果d=0,表示蒜頭君記住了word這個單詞,如果d=1,表示這是一個測試,測試蒜頭君是否認識單詞word(花椰妹不會告訴蒜頭君這個單詞的意思)。事件的輸入是按照時間先後順序輸入的

輸出格式

對於花椰妹的每次測試,如果蒜頭君認識這個單詞,輸出一行"Yes", 否則輸出一行"No"

輸出時每行末尾的多餘空格,不影響答案正確性

要求使用「檔案輸入輸出」的方式解題,輸入檔案為study.in,輸出檔案為study.out

樣例輸入1

5

0 we

0 are

1 family

0 Family

1 Family

樣例輸出1

No

Yes

樣例輸入

2

4

1 jisuanke

0 Jisuanke

0 JISUANKE

1 JiSuanKe

樣例輸出2

No

Yes

題解:

知識點:set的應用

分析:本題比較容易想到用set(做題做多就容易),因為這樣更便於我們記錄那些單詞,注意在讀入資料是對字串大小寫的判斷,要靈活運用ascll碼哦~

程式碼:

#include<iostream>
#include<cstdio>
#include<set>
#include<cctype>
#include<string>
#include<map>
using namespace std;
int main(){
    freopen("study.in","r",stdin);
    freopen("study.out","w",stdout);
    int n;
    scanf("%d",&n);
    set<string>st;//記錄蒜頭君學過的單詞
    while (n--){
        int c;
        string a;
        cin>>c>>a;
        for (int i=0;i<a.size();i++){
            if (a[i]>64 && a[i]<91){//判斷此字元是否為大寫字母
                a[i]+=(97-65);//轉變為小寫字母
            }
        }
        if (c==0){
            st.insert(a);//讀入字串
            continue;
        }
        if (st.count(a)){//判斷set是否有這個單詞
            cout<<"Yes"<<endl;
            continue;
        }
        cout<<"No"<<endl;
    }
    return 0;
}