变位词快速分离
来源:互联网 发布:浏览器 网络连接错误 编辑:程序博客网 时间:2024/06/04 21:55
变位词是形如以下的单词 eat tea 和 silent listen 互为变位词,那么对于一个单词的集合怎样快速的把变位词分离出来呢
首先把 单词的每个字符进行排序,这样所有的变位词就有了相同的序列,然后在对这些进行序列进行一次排序。
这样就把这些变位词分离出来了。
时间复杂度 nlogn
#include<iostream> #include<vector> #include<algorithm> using namespace std; typedef struct node { string sstr; string ssort;}node;int comp(node a,node b){return a.ssort<b.ssort;} int main(){ int n; while(cin>>n) { vector<node> coll; for(int i=1;i<=n;i++) { string temp1,temp2; cin>>temp1; temp2=temp1; sort(temp2.begin(),temp2.end()); coll.push_back(node{temp1,temp2});}sort(coll.begin(),coll.end(),comp); string sym=coll[0].ssort; for(int i=0;i<coll.size();i++) { if(coll[i].ssort==sym) cout<<coll[i].sstr<<" "; if(i+1<coll.size()&&coll[i+1].ssort!=sym) { sym=coll[i+1].ssort; cout<<endl;}}cout<<endl; }}
阅读全文
0 0
- 变位词快速分离
- 如何快速找出单词的变位词
- 变位词
- 变位词
- 变位词
- 变位词
- 变位词
- 变位词
- 变位词
- 链表 变位词 anagram
- FOJ 1410 变位词
- FZU 1410 变位词
- FZU 1410 变位词
- 变位词问题
- 变位词问题
- 变位词问题
- 变位词的实现
- Anagrams 变位词
- Vuforia的ImagetTarget的扫描图无法正常显示
- 3Sum
- C语言中关于链表的一些操作
- Memcached 分布式缓存实现原理
- 关于自动生成艺术字体和获得字体文件初始Size
- 变位词快速分离
- 开启梦幻般的webrtc之旅(张高伟)
- 贪心法解决区间调度问题+快速排序
- HDU 3308 线段树
- 数独填充问题
- AOP的简单代码实现
- 使用ViewPager+Fragment实现底部导航栏
- 安卓大图显示不OOM方案,极简代码,实现拖动、缩放等功能
- 大型网络不得不考虑的几个问题?(张高伟)