#include<bits/stdc++.h>usingnamespace std;boolprocess(string s1, string s2){
unordered_set<char> s;for(int i =0; i < s1.size(); i++){
s.insert(s1[i]);}for(int i =0; i < s2.size(); i++){
if(s.find(s2[i])!= s.end())
s.erase(s2[i]);}if(s.empty()){
returntrue;}returnfalse;}intmain(){
string _short ="";
string _long ="";
cin >> _short;
cin >> _long;bool res =process(_short, _long);if(res)
cout <<"true"<< endl;else
cout <<"false"<< endl;return0;}
82.将真分数分解为埃及分数
#include<bits/stdc++.h>usingnamespace std;intmain(){
string s ="";while(cin >> s){
//法一
string res ="";int idx = s.find('/');
string z = s.substr(0, idx);
string m = s.substr(idx +1);int n =stoi(z);while(n--){
res +="1/"+ m +"+";}
res = res.substr(0, res.size()-1);
cout << res << endl;}return0;}
83.二维数组操作
#include<bits/stdc++.h>usingnamespace std;boolinitExcel(int m,int n){
return m <=9&& n <=9;}boolswapXY(int x1,int y1,int x2,int y2,int m,int n, vector<vector<int>>& vec){
if(x1 < m && x2 < m && y1 < n && y2 < n){
//int tmp = vec.at(x1).at(y1);//vec.at(x1).at(y1) = vec.at(x2).at(y2);//vec.at(x2).at(y2) = tmp;returntrue;}returnfalse;}boolinsertRows(int insertRow,int m,int n, vector<vector<int>>& vec){
if(insertRow <0|| insertRow >= m || m ==9){
//returnfalse;}else{
//vector<int> tmp(n, 0);//vec.insert(vec.begin() + insertRow - 1, tmp);//vec.pop_back(); //恢复初始化时的大小returntrue;}}boolinsertCols(int insertCol,int m,int n, vector<vector<int>>& vec){
if(insertCol <0|| insertCol >= n || n ==9){
//returnfalse;}else{
//vector<int> tmp(m, 0);//vec.insert(vec.begin() + insertCol - 1, tmp);//vec.pop_back(); //恢复初始化时的大小returntrue;}}boolselectXY(int selectX,int selectY,int m,int n){
return selectX >=0&& selectX < m && selectY >=0&& selectY < n;}intmain(){
int m =0, n =0;while(cin >> m >> n){
if(initExcel(m, n)) cout <<"0"<< endl;else cout <<"-1"<< endl;
vector<vector<int>>vec(m,vector<int>(n,0));int x1 =0, y1 =0, x2 =0, y2 =0;
cin >> x1 >> y1 >> x2 >> y2;if(swapXY(x1, y1, x2, y2, m, n, vec)) cout <<"0"<< endl;else cout <<"-1"<< endl;int insertRow =0;
cin >> insertRow;if(insertRows(insertRow, m, n, vec)) cout <<"0"<< endl;else cout <<"-1"<< endl;int insertCol =0;
cin >> insertCol;if(insertCols(insertCol, m, n, vec)) cout <<"0"<< endl;else cout <<"-1"<< endl;int selectX =0, selectY =0;
cin >> selectX >> selectY;if(selectXY(selectX, selectY, m, n)){
cout <<"0"<< endl;}else{
cout <<"-1"<< endl;}}return0;}
84.统计大写字母个数
#include<bits/stdc++.h>usingnamespace std;intmain(){
string str ="";while(getline(cin, str)){
int res =0;for(char ch : str){
if(ch >='A'&& ch <='Z'){
res++;}}
cout << res << endl;}return0;}
85.最长回文子串
#include<bits/stdc++.h>usingnamespace std;boolisHuiWen(string s){
//cout << s << endl;/*int left = 0, right = s.size() - 1;
while(left < right){
if(s[left] == s[right]){
left++;
right--;
}
else{
return false;
}
}
return true;*/
string tmp = s;reverse(tmp.begin(), tmp.end());if(tmp == s)returntrue;elsereturnfalse;}intmain(){
string str ="";while(cin >> str){
int res = INT_MIN;int right =0;for(int i =0; i < str.size(); i++){
right = i;while(right < str.size()){
string tmp = str.substr(i, right - i +1);if(isHuiWen(tmp)){
res =max(res, right - i +1);}
right++;}}
cout << res << endl;}return0;}
86.求最大连续bit数
#include<bits/stdc++.h>usingnamespace std;//求1的个数intoneNum(int num){
int res =0;while(num){
num = num &(num -1);
res++;}return res;}//n进制转换
string jinZhiTrans(int m,int n){
if(m ==0)return"0";bool posFlag =false;//标记是不是负数if(m <0){
posFlag =true;
m =-m;}
string res ="";
string help ="0123456789ABCDEF";//辅助的进制转换字符串while(m){
res += help[m % n];
m /= n;}reverse(res.begin(), res.end());if(posFlag) res.insert(0,"-");return res;}intmain(){
int num =0;while(cin >> num){
string s =jinZhiTrans(num,2);//滑动窗口int res = INT_MIN;for(int i =0; i < s.size(); i++){
//滑动窗口if(s[i]=='1'){
int right = i;while(s[right]=='1'){
right++;}
res =max(res, right - i);}}
cout << res << endl;}return0;}