4128:单词序列
总时间限制: 1000ms 内存限制: 1024kB
描述
给出两个单词(开始单词和结束单词)以及一个词典。找出从开始单词转换到结束单词,所需要的最短转换序列。转换的规则如下:

1、每次只能改变一个字母

2、转换过程中出现的单词(除开始单词和结束单词)必须存在于词典中

例如:

开始单词为:hit

结束单词为:cog

词典为:[hot,dot,dog,lot,log,mot]

那么一种可能的最短变换是: hit -> hot -> dot -> dog -> cog,

所以返回的结果是序列的长度5;

注意:

1、如果不能找到这种变换,则输出0;

2、词典中所有单词长度一样;

3、所有的单词都由小写字母构成;

4、开始单词和结束单词可以不在词典中。

输入
共两行,第一行为开始单词和结束单词(两个单词不同),以空格分开。第二行为若干的单词(各不相同),以空格分隔开来,表示词典。单词长度不超过5,单词个数不超过30。
输出
输出转换序列的长度。
样例输入
hit cog
hot dot dog lot log
样例输出
5

问题链接:Bailian4128 单词序列
问题简述:(略)
问题分析:求最短变换路径,即最优问题,用BFS来解决。
程序说明:(略)
参考链接:(略)
题记:(略)

AC的C++语言程序如下:

/* Bailian4128 单词序列 */#include <bits/stdc++.h>using namespace std;const int N = 30;
string a[N + 2], tt;
bool vis[N + 2];struct Node {string w;int time;Node(string w2, int t) : w(w2), time(t){}
};void bfs(int n)
{memset(vis, false, sizeof(vis));queue<Node> q;q.push(Node(a[0], 0));vis[0] = true;int len = a[0].length();while(!q.empty()) {Node t = q.front();q.pop();for(int i = 1; i <= n; i++)if(!vis[i]) {int cnt = 0;for(int j = 0; j < len; j++)if(t.w[j] != a[i][j]) cnt++;if(cnt == 1) {vis[i] = 1;Node nt(a[i], t.time + 1);if(i == n) {printf("%d", nt.time + 1);return;} else q.push(nt);}}}printf("0");return;
}int main()
{int n = 0;cin >> a[n++] >> tt;while(cin >> a[n]) n++;a[n] = tt;bfs(n);return 0;
}

Bailian4128 单词序列【BFS】相关推荐

  1. JZ73 翻转单词序列

    JZ73 翻转单词序列 [题] [思路] [代码] 1.栈 import java.util.*; public class Solution {public String ReverseSenten ...

  2. 计蒜客题解——T1244:单词序列

    题目相关 题目链接 计蒜客 OJ,https://nanti.jisuanke.com/t/T1244. 我的 OJ,http://47.110.135.197/problem.php?id=4766 ...

  3. 条件随机场——时间序列(句子单词序列也算),其特征函数必须要考虑前一刻的数据...

    摘自:https://www.zhihu.com/question/35866596/answer/139485548 用一个活生生的例子来说明条件随机场的,十分的通俗易懂!原文在这里 [Introd ...

  4. 剑指offer Java题解之JZ73 翻转单词序列

    题目: 例如,"nowcoder. a am I".后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是"I am a nowcoder.". 示例 ...

  5. java猜单词游戏_序列应用——猜单词游戏

    开发工具:Visual Studio Code 1.游戏介绍 猜单词游戏就是计筧机随机产生一个单词,打乱字母顺序,供玩家去猜测.此游戏采用控制字符界面. 2.程序设计思路 游戏中,可使用序列中的元组存 ...

  6. 深度学习笔记 第五门课 序列模型 第三周 序列模型和注意力机制

    本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...

  7. Leetcode.126 单词接龙 II

    题目链接 Leetcode.126 单词接龙 II 题目描述 按字典 wordList完成从单词 beginWord到单词 endWord转化,一个表示此过程的 转换序列 是形式上像 beginWor ...

  8. BFS 题目解题套路

    BFS 基本套路 使用 BFS 解决题目的基本套路如下: 1.有一个数据结构描述起点和终点. 2.有一个数据结构描述题目相关数据.比如走迷宫类型题目,需要迷宫长.宽.迷宫内容. 3.一个队列 q,保存 ...

  9. 5-3 Coursera吴恩达《序列模型》 第三周课程笔记-序列模型和注意力机制

    上一周的课程5-2 Coursera吴恩达<序列模型> 第二周课程笔记-自然语言处理和词嵌入介绍了自然语言处理相关内容,例如词汇表征.词嵌入.嵌入矩阵和负采样等概念,以及Word2Vec和 ...

最新文章

  1. Python技术之Number数据类型介绍
  2. 2.2 Wrappers访问控制
  3. 计算机软件专利申请期限,软件发明专利申请期限为何那么长
  4. 小木棍(洛谷-P1120)
  5. weblogic详解
  6. JZOJ 1238. 自行车比赛
  7. 工程介绍好处费性质_承包工程项目都要注意什么?怎么防止拖欠工程款
  8. 使用loadrunner录制winsock协议的程序(原创)
  9. Java 内存模型(JMM)
  10. coolpro2 剪切并淡出
  11. 电子签名服务和云平台整合管理合同
  12. mayapython常用模块_Maya中Python普及教程
  13. 全球及中国紧急警报系统EAS行业竞争格局及市场前景预测分析报告2022-2028年
  14. OI退役记,第二部分,八十中记事
  15. 看看阿里双十一970P数据处理得,那叫一个牛啤!
  16. 书摘---创业36条军规8:资本的五个问题
  17. 【软件测试技术期末复习选择题】
  18. 【已解决】华为手机短接后有提示音但在其他设备里显示未知设备或者USB-SER怎么办 | 华为荣耀手机短接后未知设备里面出现“USB-SER” 端口如何解决
  19. 杨柳目-杨柳科:杨柳科
  20. Excel表格太单调?教你可视化三板斧!

热门文章

  1. 基于ECharts+百度地图开发散点扩散图
  2. 2022-03-21 转载办公室之常用职位(英汉)
  3. mybatisplus 结果_MyBatis Plus 将查询结果封装到指定实体
  4. jQuery Mobile主题使用与定制
  5. C#多线程学习(四) 多线程的自动管理(线程池)
  6. 猿辅导 android平板,如何为孩子学习提速减压?荣耀平板7携手猿辅导打造优质网课学习体验...
  7. Flume之介绍 核心组件 可靠性 恢复性
  8. python描述符魔术方法_Python类型转换的魔术方法详解
  9. jfinal 一对一 实体类怎么写_新祥旭考研一对一:考前必知的四大答题技巧
  10. 第八届蓝桥杯第十题 k倍区间