AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P3397. 两个字符串间的最短路径

中等通过率 86% · 提交 36 · 通过 31
动态规划字符串矩阵DP

小慕正在处理一个字符串对齐的问题。他有两个字符串,分别是字符串A和字符串B。 例如,字符串A为ABCABBA,字符串B为CBABAC。小慕将它们放在一个m×n的二维数组中,定义原点为(0,0),终点为(m,n),水平与垂直的每一条边距离为1,映射成坐标系如下图。 从原点(0,0)到(0,A)为,距离为1;从(0,A)到(A,C)为,距离为1。假设两个字符串同一位置的两个字符相同,则可以作一条,例如从(A,C)到(B,B)的最短距离为斜边,距离同样为1。小慕找出了所有的斜边,如下图,(0,0)到(B,B)的距离为1个水平边加1个垂直边加1个斜边,等于3。 ![7e3153a7eca24127a43e5adf52284bf0.png](/api/public/img/8ada527eb8874d69a1af87a4b9a3b073.png) 根据定义,小慕发现原点到终点的最短距离路径如下图红线标记,最短距离为9。 ![64ce423a48fd48b79c7c7baf9cccd009.png](/api/public/img/e6d8a88206c8438a92da36d7af293b74.png)

提示:带虚线的词点一下有通俗解释。

输入描述

空格分割的两个字符串A与字符串B,字符串不为空串,字符格式满足正则规则:[A-Z],字符串长度<10000

输出描述

原点到终点的最短距离

示例

示例 1

输入

ABC ABC

输出

3

示例 2

输入

ABCABBA CBABAC

输出

9

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
(0,0) (0,A) (0,B) (0,C) (0,A) (0,B) (0,B) A B C B (m,n) 斜边 最短路径
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「两个字符串间的最短路径」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。