蒜頭君學英語 - 計蒜客
阿新 • • 發佈:2021-01-27
技術標籤:計蒜客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
樣例輸入
24
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; }