文章标题
2016-07-24 12:46
309 查看
输入描述:
先输入字典中单词的个数,再输入n个单词作为字典单词。
输入一个单词,查找其在字典中兄弟单词的个数
再输入数字n
输出描述:
根据输入,输出查找到的兄弟单词的个数
输入例子:
3
abc
bca
cab
abc
1
输出例子:
2
bca
这个其实很简单
就有一些细节要注意,别看错题,注意输入输出条件即可
#include<iostream> #include<algorithm> #include<map> #include<string> using namespace std; int number(const string &str1);//获得字符串的排好序后的权值 int main(){ int n; while(cin>>n){ map<pair<string,int>,int> temp; //利用map的特性直接排序,懒得写排序了 string str=""; while(n--){ cin>>str; temp[pair<string,int>(str,number(str))]++; } string target = "",first_str=""; int res,len,count=0; cin>>target>>res; auto itr = temp.begin(); len = number(target); while(itr!=temp.end()){ //获取符合条件的字符串的数量 if(itr->first.first.size()==target.size()&&itr->first.second==len&&itr->first.first!=target){ ++count; int i = itr->second; while(i>1){ //如果输入重复数据,就要计数多次 ++count; i--; if(--res==0) first_str = itr->first.first; } if(--res==0) first_str = itr->first.first; } itr++; } //输出结果,如果找到的数不够目标的数的位置大就不输出 cout<<count<<endl; if(first_str!="") cout<<first_str<<endl; } return 0; } int number(const string &str1) { string str = str1; sort(str.begin(),str.end()); int res=0; auto itr = str.begin(); while (itr != str.end()) { res = res*10 + (*itr - 'a'); itr++; } return res; }
相关文章推荐
- SICP_Python版第二章:集合的表示
- Linux基础入门
- hdu1317 负权最短路(Floyd+bellman)
- expect 提供用户名和密码的SSH自动登录脚本
- nyoj 1036 非洲小孩 【区间找点】
- HotFix介绍及HotFix开源项目推荐
- VS2015Intellisense智能提示的模式的切换
- webview跳转页面的返回操作不成功,死循环问题
- Java集合框架(下)
- python数学运算——numpy
- AudioManager 的使用
- NGUI ScrollView 回弹控制
- python threadpool多线程池的多种玩法
- Spring boot 嵌入的tomcat不能启动: Unregistering JMX-exposed beans on shutdown
- 做Android开发 需要掌握哪些知识
- 目前比较全的CSS重设(reset)方法总结
- 一些基本的正则表达式
- caffe-custom new layer
- CPU \GPU profling
- 列表