华为OJ(查找兄弟单词)
来源:互联网 发布:我跟肌肉男的夜晚知乎 编辑:程序博客网 时间:2024/05/22 17:44
先输入字典中单词的个数,再输入n个单词作为字典单词。
输入一个单词,查找其在字典中兄弟单词的个数
再输入数字n
根据输入,输出查找到的兄弟单词的个数
输出指定的第n个兄弟单词
第一种,将所有单词放入set中(按键值排好序,方便后面寻找指定第n个兄弟),然后对要查找的单词和字典中每个作对比,如果是兄弟单词,计数cnt++,并放入vector中,这样vector中第n个单词即要查找的第n个兄弟单词。这是我自己的思路。
第二种方法,用map,但键值使用重新排序后的单词,比如bac排序后为abc。将兄弟组成的链表作为value,这是网上别人的思路,留作以后的练习题吧。
#include<iostream>#include<set>#include<vector>#include<string>using namespace std;bool isBrother(string s1,string s2){if(s1==s2)return false;if(s1.size()!=s2.size())return false;int flag;for(int i=0;i<s1.size();i++){flag=0;for(int j=0;j<s1.size();j++){if(s1[i]==s2[j]){flag=1;break;}}if(flag==0)return false;}return true;}int main(){set<string> sset;vector<string> svec;string s;int n,cnt=0;cin>>n;for(int i=0;i<n;i++){cin>>s;sset.insert(s);}cin>>s;for(set<string>::iterator it=sset.begin();it!=sset.end();it++){if(isBrother(s,*it)){cnt++;svec.push_back(*it);}}cin>>n;cout<<cnt<<endl;cout<<svec[n-1]<<endl;//system("pause");return 0;}
0 0
- 华为OJ(查找兄弟单词)
- 【华为OJ】查找兄弟单词
- 华为oj 查找兄弟单词
- 华为OJ:查找兄弟单词
- 华为OJ-查找兄弟单词
- 【华为OJ】查找兄弟单词(未通过)
- 华为OJ中级题-查找兄弟单词
- 【华为OJ】【073-查找兄弟单词】
- 华为OJ——查找兄弟单词
- 华为OJ——查找兄弟单词
- 华为oj之兄弟单词
- 华为练习2 查找兄弟单词
- 华为机试---查找兄弟单词
- 华为机试-查找兄弟单词
- 华为机试在线训练-牛客网(17)查找兄弟单词
- 华为机试——查找兄弟单词
- OJ中------兄弟单词
- 查找兄弟单词
- Accessibilityservice(辅助服务开发)学习笔记
- 疯狂Android讲义第二讲
- There is a war (hdu 2435 最小割+枚举)
- ioc笔记
- 2015 Multi-University Training Contest 4
- 华为OJ(查找兄弟单词)
- html表单标记简单使用
- c++ string 路径处理
- HDOJ 题目3966 Aragorn's Story(Link Cut Tree成段加减点权,查询点权)
- WINCE应用程序全屏显示
- 2015 Multi-University Training Contest 5
- 模板多态
- 前端性能优化
- LeetCode: SingleNumIII