【题目14:单词接龙】
题目描述:
单词接龙的规则是:
可用于接龙的单词,首字母必须要与前一个单词的尾字母相同;
当存在多个首字母相同的单词时,取长度最长的单词;
如果长度也相等,则取字典序最小的单词;
已经参与接龙的单词不能重复使用;
现给定一组全部由小写字母组成的单词数组,
并指定其中一个单词为起始单词,进行单词接龙,
请输出最长的单词串。
单词串是单词拼接而成的,中间没有空格。
单词个数 1 < N < 20
单个单词的长度 1 ~ 30
输入描述
输入第一行为一个非负整数
表示起始单词在数组中的索引k
0 <= k < N
输入的第二行为非负整数N
接下来的N行分别表示单词数组中的单词
输出描述
输出一个字符串表示最终拼接的单词串
示例一
输入
0
6
word
dd
da
dc
dword
d
输出
worddwordda
示例二
输入
4
6
word
dd
da
dc
dword
d
输出
dwordda
解法1 暴力求解
解法2 暂时没想到
#include<vector>
#include<map>
#include<algorithm>
#include<sstream>
#include<string>
using namespace std;
int main()
{int k, val = 0;cin >> k;cin >> val;string str;vector<string>vs;//vector<pair<int, int>>hash_map;for(int i=0;i<val;i++){cin >> str;vs.push_back(str);}int maxsize = 0;//int index = 0;string target = vs[k];string res = vs[k];vs[k] = "";//for (int i = 0; i < vs.size(); i++)
// {// hash_map.push_back(pair<int, int>(vs[i].size(), //i)); //}//sort(hash_map.begin(), hash_map.end(),cmp);int change = 0;string tmp;char find= target[target.size() - 1];for (int i = 0; i < vs.size(); i++){for (int j = 0; j < vs.size(); j++){if (vs[j][0] == find){if (vs[j].size() > tmp.size()&&(!vs[j].empty())) {tmp = vs[j];change = j;}else if (vs[j].size() == tmp.size() && (!vs[j].empty())){for (int l = 1; l < vs[j].size(); l++){if (vs[j][l] < tmp[l]){tmp = vs[j];change = j;}}}}}vs[change] = "";change = 0;res += tmp;if (tmp.empty()) {break;}find=tmp[tmp.size() - 1];tmp = "";}cout << res << endl;
}
【题目14:单词接龙】相关推荐
- 洛谷 P1019 单词接龙 Label:dfs
题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在"龙" ...
- 洛谷P1019 单词接龙
题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在"龙" ...
- P1019 单词接龙 (DFS)
题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在"龙" ...
- 洛谷——P1019 单词接龙
题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在"龙" ...
- 洛谷 P1019 单词接龙
题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在"龙" ...
- [蓝桥杯][算法训练VIP]单词接龙(DFS+String)
题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都 最多在"龙&quo ...
- 单词接龙(洛谷-P1019)
题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在"龙" ...
- 深度优先搜索——单词接龙(洛谷 P1019)
题目选自洛谷P1019 首先在题意上可能有些误解. 两个单词合并时,合并部分取的是最小重叠部分 相邻的两部分不能存在包含关系就是说如果存在包含关系,就不能标记为使用过. 每个单词最多出现两次. (其实 ...
- Java 算法 单词接龙
目录标题 题目描述 解题思路 代码 题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个 ...
- NOIP2000单词接龙[DFS]
题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在"龙" ...
最新文章
- Leader每天996,绩效被打C!CTO说,团队带不好,原因只有一个
- Nginx反向代理+Go服务实践
- 用boost库实现traceroute小工具
- 经典MapReduce作业和Yarn上MapReduce作业运行机制
- 在gluster中配置distributed 卷
- 基于Solana区块链的去中心化交易所Orca正式启动
- linux系统安装snort,linux下SNORT安装.doc
- Topaz DeNoise AI for Mac(图片降噪软件)
- Lexical environments: ECMAScript implementation
- Diameter协议学习笔记一(协议介绍)
- Android签名与风险分析
- 如何在打印机驱动详细信息不能查看的情况下利用DISM命令备份还原打印机驱动
- 高通SDM439平台使能sensor hub的auto detect模式
- 汇编达人视频学习4(MOVS、STOS、REP、PUSH、POP、JMP、CALL、RET指令)
- 给图片加ALT属性是个什么意思?有什么优点呢
- scroller基础知识点
- 【python 题练】
- java web上传视频文件_怎样使用javaweb实现上传视频和下载功能?
- 【C++】迭代器、反向迭代器详解
- Poly2Tri介绍