题目源地址:https://blog.youkuaiyun.com/u014552756/article/details/55549506
代码原创
1.单词首字母计数
#include<bits/stdc++.h>
using namespace std;
int main(){
string str;
set<string> lst;
map<char, int> mp;
while(cin >> str){
lst.insert(str);
}
set<string>::iterator it;
for(it = lst.begin(); it != lst.end(); it++){
mp[(*it)[0]]++;
}
map<char, int>::iterator mit;
for(mit = mp.begin(); mit!=mp.end(); mit++){
cout<<mit->first<<" "<<mit->second<<endl;
}
return 0;
}
2.单词字典序排序
#include<bits/stdc++.h>
using namespace std;
int main(){
vector<string> lst;
string str;
while(1){
cin >> str;
lst.push_back(str);
if(getchar() == '\n')
break;
}
sort(lst.begin(), lst.end());
for(int i = 0; i < lst.size()-1; i++){
cout << lst[i] << " ";
}
cout << lst[lst.size()-1] << endl;
return 0;
}
3.领导关系
#include<bits/stdc++.h>
using namespace std;
vector<pair<string, int> > re;
void insert(string &str, int level){
pair<string, int> tmp;
if(!str.empty()){
tmp.first = str;
tmp.second = level;
re.push_back(tmp);
str = "";
}
}
//(aaaa(bbbb(cccc,dddd),eeee(ffff)))
int main(){
string buf;
stack<string> stk;
int level = 0;
getline(cin, buf);
string str;
for(int i = 0; i < buf.length(); i++){
switch(buf[i]){
case '(':{
insert(str, level);
level ++;
break;
}
case ')':{
insert(str, level);
level --;
break;
}
case ',':
case ' ':
insert(str, level);
break;
default:{
str += buf[i];
break;
}
}
}
/*
for(int i = 0; i < re.size(); i++){
cout << re[i].first << " : " << re[i].second << endl;
}*/
string input;
while(cin >> input){
int f_level = -1;
for(int i = re.size()-1; i >= 0; i--){
if(re[i].first == input){
stk.push(re[i].first);
f_level = re[i].second - 1;
}
if(re[i].second == f_level){
stk.push(re[i].first);
f_level --;
}
}
while(stk.size() != 1){
cout << stk.top() << "->";
stk.pop();
}
cout << stk.top() << endl;
stk.pop();
}
return 0;
}