题目描述 【c++|复合词 (Compound Words)(集合+字符函数)】给出一个词典,找出所有的复合词,即恰好有两个单词连接而成的单词。输入每行都是一个小写字母组成的单词。输入已按照字典序从小到大排序,且不超过120000个单词。输出所有复合词,按照字典序从小到大排序。
输入输出样例
输入
a
alien
born
less
lien
never
nevertheless
new
newborn
the
zebra
输出
alien
newborn
#include
#include
#include
#include
using namespace std;
set>st;
int main()
{
for(string s;
cin >> s;
)
{
st.insert(s);
}
for(set>::iterator it = st.begin();
it != st.end();
++it)
{
for(int j = 1;
j < (int)it->size();
++j)
{
if(st.count(it->substr(0,j)) && st.count(it->substr(j,it->size()-j)))
{
cout<<*it<
推荐阅读
- C语言学习|第十一届蓝桥杯省赛 大学B组 C/C++ 第一场
- 【C】题目|【C语言】题集 of ⑥
- 单片机|自学单片机好找工作吗(会单片机能找什么工作?)
- 单片机|keil把源代码生成lib的方法
- c语言|一文搞懂栈(stack)、堆(heap)、单片机裸机内存管理malloc
- c语言|C语言初期学习遇到的特殊点 【三子棋详解】【初学者福音,详细总结,复习能手】
- 笔记|C语言数据结构——二叉树的顺序存储和二叉树的遍历
- C#|C# 文件路径操作
- C# 接口实例
- 个人日记|K8s中Pod生命周期和重启策略