题目描述:
单词接龙的规则是:
可用于接龙的单词,首字母必须要与前一个单词的尾字母相同;
当存在多个首字母相同的单词时,取长度最长的单词;
如果长度也相等,则取字典序最小的单词;
已经参与接龙的单词不能重复使用;
现给定一组全部由小写字母组成的单词数组,
并指定其中一个单词为起始单词,进行单词接龙,
请输出最长的单词串。
单词串是单词拼接而成的,中间没有空格。

单词个数 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:单词接龙】相关推荐

  1. 洛谷 P1019 单词接龙 Label:dfs

    题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在"龙" ...

  2. 洛谷P1019 单词接龙

    题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在"龙" ...

  3. P1019 单词接龙 (DFS)

    题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在"龙" ...

  4. 洛谷——P1019 单词接龙

    题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在"龙" ...

  5. 洛谷 P1019 单词接龙

    题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在"龙" ...

  6. [蓝桥杯][算法训练VIP]单词接龙(DFS+String)

    题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都 最多在"龙&quo ...

  7. 单词接龙(洛谷-P1019)

    题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在"龙" ...

  8. 深度优先搜索——单词接龙(洛谷 P1019)

    题目选自洛谷P1019 首先在题意上可能有些误解. 两个单词合并时,合并部分取的是最小重叠部分 相邻的两部分不能存在包含关系就是说如果存在包含关系,就不能标记为使用过. 每个单词最多出现两次. (其实 ...

  9. Java 算法 单词接龙

    目录标题 题目描述 解题思路 代码 题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个 ...

  10. NOIP2000单词接龙[DFS]

    题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在"龙" ...

最新文章

  1. Leader每天996,绩效被打C!CTO说,团队带不好,原因只有一个
  2. Nginx反向代理+Go服务实践
  3. 用boost库实现traceroute小工具
  4. 经典MapReduce作业和Yarn上MapReduce作业运行机制
  5. 在gluster中配置distributed 卷
  6. 基于Solana区块链的去中心化交易所Orca正式启动
  7. linux系统安装snort,linux下SNORT安装.doc
  8. Topaz DeNoise AI for Mac(图片降噪软件)
  9. Lexical environments: ECMAScript implementation
  10. Diameter协议学习笔记一(协议介绍)
  11. Android签名与风险分析
  12. 如何在打印机驱动详细信息不能查看的情况下利用DISM命令备份还原打印机驱动
  13. 高通SDM439平台使能sensor hub的auto detect模式
  14. 汇编达人视频学习4(MOVS、STOS、REP、PUSH、POP、JMP、CALL、RET指令)
  15. 给图片加ALT属性是个什么意思?有什么优点呢
  16. scroller基础知识点
  17. 【python 题练】
  18. java web上传视频文件_怎样使用javaweb实现上传视频和下载功能?
  19. 【C++】迭代器、反向迭代器详解
  20. Poly2Tri介绍

热门文章

  1. VLSI数字集成电路设计——时序电路
  2. 大数据的达摩克利斯之剑
  3. 二:程序员资料大全-各种神奇的资料收集笔记
  4. Java 公交车案例
  5. python原子变量_Python的原子性操作是如何实现的
  6. cordova移动端的导航栏滚动侦听
  7. FPGA动态数码管应用——60S计数
  8. java 设计模式之三-模版模式
  9. c语言课程表策划案,C语言课程设计-个人课程表管理系统报告
  10. 百度站长平台提交链接-主动推送