sách gpt4 ai đã đi

java - 将一个字符串转换为另一个字符串

In lại 作者:塔克拉玛干 更新时间:2023-11-03 06:19:36 25 4
mua khóa gpt4 Nike

有一个字符串,其字符只能是Một,bhoặc_中的一个,只有一个 _ 在字符串中。

在每一步,我们都可以修改字符串如下:

_ 可以与其相邻的字符交换,例如 a_ba 可以更改为 _aba hoặc ab_a .

只有当相邻字符与下一个相邻字符不同时,您才能将 _ 字符与下一个相邻字符交换。 (例如aba_ab可以转为a_ababhoặcababa_,但是ab_aab不能转为abaa_b ,bởi vìMột不能跳过Một).

给定两个字符串,初始状态和最终状态(长度相同),你必须输出将初始状态的字符串更改为最终状态的字符串所需的最少步数。

ví dụ:

string s1 ,s2 ;
input: s1 = a_b , s2 = ab_
output: 1
input: s1 = aba_a , s2 = _baaa
output: 2

1 Câu trả lời

当您非常简单地将问题视为图形问题时,就可以解决这个问题。

顶点是所有可能的状态,如果您可以使用一次移动从一个顶点到达另一个顶点,则有一条边来自两个顶点。
现在的问题是,在此图中找到从源到目的地的最短路径。

您的代码基本上实现了一个 DFS在此图上,但 DFS 不是最优的。你应该尝试实现 BFS ,这保证是最优的(总能找到最短路径)。

更复杂的优化(为了更快的运行时间)包括 A* 搜索算法和双向搜索,但您现在应该避免这些并专注于更简单的 BFS,恕我直言。

关于java - 将一个字符串转换为另一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35585641/

25 4 0
Bài viết được đề xuất: ios - 如何算法呢?
Bài viết được đề xuất: java - 如何使用文件库io Java
Bài viết được đề xuất: Thuật toán - Tính tổng trong một ma trận
Bài viết được đề xuất: algorithm - 用于类似匹配的图形数据库(例如 Neo4j)
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com