Anagrams
来源:互联网 发布:量化交易数据 编辑:程序博客网 时间:2024/06/15 20:51
Given an array of strings, return all groups of strings that are anagrams.(返回有为回文构词法的组)
Note: All inputs will be in lower-case.
Anagrams(回文构词法)是指由颠倒字母顺序组成的单词。首先回文,则排序,则可以检查。但是不能改变原来的数据(用临时变量)。
后面查找很容易想到hash,由于c++对hash支持不太好,此处用map。(或者另一思路,字典在排序。较为麻烦)。
vector<string> anagrams(vector<string> &strs) { if (strs.empty())vector<string>(); map<string ,int> str_map; map<string ,int>::iterator it; vector<string> res; for (int i = 0;i < strs.size();i++)//加入到map后续看是否,该数据存在,不存在则加入map,存在则加入结果(并把map中的也加入) { string str_temp = strs[i];//不破坏原数据 sort(str_temp.begin(),str_temp.end()); if ((it = str_map.find(str_temp)) == str_map.end())//未找到 { str_map.insert(pair<string,int>(str_temp,i)); } else { if(it->second >= 0)//的考虑开始加进去的 { res.push_back(strs[it->second]); it->second = -1;//清除掉(已加入) } res.push_back(strs[i]);//后续的! } } return res; }测试用例:
"tea","and","ate","eat","den“ (输入)
"tea","ate","eat","and","den” (输出)
0 0
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- anagrams
- Anagrams
- Anagrams
- Anagrams
- DateDiff函数
- 关于PreferenceActivity的使用和一些问题的解决(自定义Title和取值)
- DLL窗体停靠后,窗体中的listview ,Memo 提示"no parent"错误的解决办法
- 函数可重入性及编写规范
- fatal error C1189: #error : MFC does not support WINVER less than 0x0501.
- Anagrams
- js 实现YYYY-MM-DD日期加上天数得到新的日期
- 【浅析java中的自动装箱和拆箱操作】浅析java中的自动装箱和拆箱操作
- 教大家下载Windows Phone 8的Toolkit(高手勿喷)
- android权限大全[转]
- Caused by: java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x1
- 程序的模块化的一些见解6-读牛人代码之感
- IO流之拷贝指定目录下的所有文件以及目录
- Linux 可加载内核模块剖析