UVA 10391 Compound Words
2017-11-09 12:18
344 查看
题目大意:给出一列单词 字典序输出是由其他俩个单词组合成的单词
解题思路:存储合成的单词时间复杂度为n^2会超时,所以用拆分单词来解决
解题思路:存储合成的单词时间复杂度为n^2会超时,所以用拆分单词来解决
#include <cstdio> #include <iostream> #include <cstring> #include <algorithm> #include <map> #include <vector> using namespace std; int n; string s[130000]; vector<string> s2; map<string, int> Ma; bool cmp(string x, string y) { if(x.compare(y) < 0) { return true; } else { return false; } } void jud() { for(int i = 0; i < n; i++) { for(int j = 0; j < s[i].size()-1; j++) { string a = s[i].substr(0, j+1); string b = s[i].substr(j+1, s[i].size() - j - 1); if(Ma[a] && Ma[b]) { s2.push_back(s[i]); break; } } } sort(s2.begin(), s2.end(), cmp); } void init() { for(int i = 0; i < n; i++) { Ma[s[i]] = 1; } } int main() { n = 0; while(cin >> s ) { n++; } init(); jud(); for(int i = 0; i < s2.size(); i++) { cout << s2[i] << endl; } return 0; }
相关文章推荐
- UVA 10391 Compound Words
- uva 10391 Compound Words
- UVA 10391 Compound Words
- UVA 10391 Compound Words
- Uva 10391 - Compound Words
- uva10391 Compound Words
- uva--10391 - Compound Words
- UVa 10391 - Compound Words
- UVa-10391 Compound Words
- UVA 10391 - Compound Words
- 5-5 UVA 10391 Compound Words复合词
- UVA_10391: Compound Words
- uva 10391 Compound Words (字符串-hash)
- UVA 10391 Compound Words
- UVA - 10391 Compound Words
- uva 10391 Compound Words
- uva 10391 Compound Words (字符串-hash)
- UVA - 10391 Compound Words
- UVA 10391 Compound Words
- uva10391 - Compound Words