Uva 10391
来源:互联网 发布:狸窝mp4视频转换器mac 编辑:程序博客网 时间:2024/06/05 01:54
一.题目
题目链接:Uva10391
二.思路
看到题目啥都没想,集合保存原来的单词,直接上手两个for循环遍历拼接单词,然后再集合里找是否已经存在,一提交超时。我们可以反其道而行,将每个单词拆分,因为单词长度一般都不会太长,一个单词顶多也就遍历个几十次,比起120000这个级数要小的多,然后结果集也要用集合存储,不要直接输出,因为像zzz这种,(z,zz)和(zz,z)都能构成zzz,直接输出的话会输出两次,详情看代码注释。
三.源代码
#include <algorithm>#include <iostream>#include <set>#include <stdio.h>using namespace std;int main() { set<string> s_words; set<string> results; string word, temp1, temp2; while (cin >> word) s_words.insert(word); for (set<string>::iterator iter = s_words.begin(); iter != s_words.end(); iter++) { //迭代器遍历,把一个单词分割成两个部分,然后判断集合里是否存在这两个单词 for (int i = 1; i < (*iter).length(); i++) { temp1 = (*iter).substr(0, i); temp2 = (*iter).substr(i, (*iter).length() - i); if (s_words.count(temp1) && s_words.count(temp2)) results.insert((*iter)); } } for (set<string>::iterator iter = results.begin(); iter != results.end(); iter++) //遍历输出 printf("%s\n", (*iter).c_str()); return 0;}
阅读全文
0 0
- uva 10391
- UVA 10391
- uva 10391
- uva 10391
- UVA 10391
- Uva 10391
- uva 10391 compound words
- UVa 10391 - Compound Words
- uva 10391 - Compound Words
- uva 10391 - Compound Words
- UVa 10391 - Compound Words
- UVa 10391 - Compound Words
- uva 10391 - Compound Words
- UVA 10391 Compound Words
- UVA 10391 - Compound Words
- Uva-10391-Compound Words
- UVa 10391 - Compound Words
- Uva 10391 复合词
- ios auto sizing cell遇到的坑(estimatedRowHeight的重要性)
- 共同学习Java源代码-数据结构-HashMap(十六)
- MyBatis的Mapper接口以及Example的实例函数及详解
- 软件测试中我们一般会遇到三角形和年月日的问题
- Spring(1)—初识
- Uva 10391
- JAVA 基础知识 数组
- 设计模式(4)-抽象工厂模式及抽象工厂与工厂模式的区别
- Javascript模块化编程(三):require.js的用法
- mysql(10):基础,ORDER 子句的语法介绍
- MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications论文笔记
- jQuery –AJAX
- day04_innerHTML属性
- Qt+OpenCV以时间命名视频名字