蓝桥杯学习记录8
藍橋杯學習記錄
一、測試練習:
問題名稱:字符串對比
問題描述:
給定兩個僅由大寫字母或小寫字母組成的字符串(長度介于1到10之間),它們之間的關系是以下4中情況之一:
1:兩個字符串長度不等。比如 Beijing 和 Hebei
2:兩個字符串不僅長度相等,而且相應位置上的字符完全一致(區分大小寫),比如 Beijing 和 Beijing
3:兩個字符串長度相等,相應位置上的字符僅在不區分大小寫的前提下才能達到完全一致(也就是說,它并不滿足情況2)。比如 beijing 和 BEIjing
4:兩個字符串長度相等,但是即使是不區分大小寫也不能使這兩個字符串一致。比如 Beijing 和 Nanjing
編程判斷輸入的兩個字符串之間的關系屬于這四類中的哪一類,給出所屬的類的編號。
輸入格式:
包括兩行,每行都是一個字符串
輸出格式:
僅有一個數字,表明這兩個字符串的關系編號
樣例輸入:
BEIjing beiJing樣例輸出:
3
解題思路:
用 if 和 else 結構來進行邏輯判斷,在比較字符串時統一將字符串處理為大寫。
代碼:
#include <iostream> #include<string> using namespace std; //字符串對比 // A 65 a 97 int main() {string str1;string str2;cin>>str1>>str2;if(str1.size() != str2.size())cout<<1;else{if(str1 == str2)cout<<2;else {for(int i = 0; i < str1.size(); i++){if (str1[i] > 97)str1[i] -= 32;if (str2[i] > 97)str2[i] -= 32;}if(str1 == str2)cout<<3;elsecout<<4;}} }二、視頻學習:
學習鏈接:https://www.bilibili.com/video/BV1jE411g76D?p=9&t=2200
學習內容:
map 套用set
map < int, set > s 就定義map套用set的數據結構。
#include <iostream> #include <map> #include <utility> #include <set> using namespace std; int main() {map<int, set<string> > s;s[1].insert("Tom");s[1].insert("Mary");s[2].insert("Amy");s[2].insert("Sam"); //遍歷map套用set的用法for(map<int, set<string> >::iterator it = s.begin(); it != s.end(); it++){for(set<string>::iterator is = it->second.begin(); is != it->second.end(); is++)cout<<*is<<" ";cout<<endl;} }map 套用 map
用法示例:
#include <iostream> #include <map> #include <utility> #include <set> using namespace std; int main() {map<int, map<string, int> > info;int n;cin >> n;for ( int i = 0; i < n ; i++){int class_id;string name;cin>>class_id>>name;info[class_id][name]++;}for(map<int, map<string, int> >::iterator it = info.begin(); it != info.end(); it++){for(map<string, int>::iterator it2 = it -> second.begin(); it2 != it->second.end(); it2++){cout << "There are " << it2 -> second << "people named " << it2 -> first << " in class"<<endl;}}return 0; }總結
- 上一篇: jq判断CheckBox是否被选中的常见
- 下一篇: 排序算法 | 快速排序算法原理及实现和优