【问题标题】:Return sequence of changes to get from one string to another返回从一个字符串到另一个字符串的更改序列
【发布时间】:2022-01-10 19:35:54
【问题描述】:

我想构建一个算法,它返回最短的更改序列,将一个三位数的字符串转换为另一个三位数的字符串。中间词仅限于预定义的字符串数组。

例如,我有输入 start = ABCend = DEFwords[] = {ABC, XZZ, AEC, DEF, AEF}。该算法应返回{ABC, AEC, AEF, DEF}。变换的每一步,只能改变一个字母,中间词必须都是words[]的元素。如果这样的转换是不可能的,我会返回null。如果startend 相同,那么我将返回一个空列表。

我一直在考虑这个问题,我考虑了每一步,检查了words[] 中的所有元素,以找到一个与当前元素不同的元素并以这种方式进行,但我不确定如何将其表述为代码。我可以使用 TrieMap 吗?

【问题讨论】:

  • SO 不是代码编写服务,请在此处粘贴您的尝试
  • 你可以用一个特殊的 trie 来解决这个问题,对于字典中的每个单词,你添加每个排列,* 替换一个字符。这可以帮助您找到仅在一个字符上有所不同的单词之间的边缘。

标签: java arrays algorithm


【解决方案1】:

这个问题可以通过使用简单的搜索算法(例如广度优先搜索)来解决。详细解释我贴这个问题的link和对应的solutions

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-26
    • 2020-03-13
    • 1970-01-01
    • 1970-01-01
    • 2012-10-15
    相关资源
    最近更新 更多