华为OD机考2025A卷 - 找出经过特定点的路径长度(Java & Python& JS & C++ & C )

题目描述

输入描述

输入一个字符串,都是以大写字母组成,每个相邻的距离是 1,

第二行输入一个字符串,表示必过的点。

说明每个点可过多次。

输出描述

经过这些必过点的最小距离是多少

用例

输入

ANTSEDXQOKPUVGIFWHJLYMCRZB
ABC

输出 28
说明

题目解析

这个题目是一个路径搜索问题,具体来说,是在一个字符串中寻找一条经过特定字符的最短路径。

输入包括两行字符串。第一行字符串由大写字母组成,每个字符可以看作是一个点,相邻字符之间的距离为1。第二行字符串指定了一些必须经过的点(字符)。

题目要求找出一条路径,这条路径必须经过所有在第二行字符串中指定的点,而且总距离要尽可能的小。注意,每个点可以经过多次,但在计算总距离时,每次经过都会计算其距离。
例如,输入为:

ANTSEDXQOKPUVGIFWHJLYMCRZB
ABC

输出为:

28

解释:在第一个字符串中,字母A的位置是0,字母B的位置是25,字母C的位置是24。所以,经过这些必过点的最小距离是 |0-25| + |25-24| = 28。

DFS (深度优先搜索) 是一种用于遍历或搜索图或树的算法。它通过从起始节点开始,沿着一条路径尽可能深入地探索,直到无法继续为止,然后回溯到前一步选择其他路径继续探索,直到遍历完所有可能的路径。

对于题目,我们需要找到经过指定的必过点的最小距离。下面是解题思路:

  1. 首先,我们需要构建一个映射表 mustC

你可能感兴趣的:(最新华为OD机试真题,华为OD机试真题,(Java/JS/Py/C),华为od,java,python,javascript,c++)