字符串问题---数组中两个字符串的最小距离
程序员文章站
2024-02-27 23:42:51
...
【题目】
给定一个字符串数组strs,再给定两个字符串str1和str2,返回strs中str1与str2的最小距离,如果str1或str2为null,或不在strs中,返回-1。
【基本思路】
从左到右遍历strs,用变量last1记录最近一次出现的str1的位置,用变量last2记录最近一次出现str2的位置。如果遍历到str1,那么i - last2就是当前的str1和左边离它最近的str2之间的距离。如果遍历到str2,那么i - last1就是当前的str2和左边离它最近的str1之间的距离。用全局变量记录最小距离即可。
下面是使用python3.5实现的代码。
#数组中两个字符串的最小距离
def minDistance(strs, str1, str2):
if strs == None or str1 == None or str2 == None:
return -1
if str1 == str2:
return 0
last1 = -1
last2 = -1
minDistance = sys.maxsize
for i in range(len(strs)):
if strs[i] == str1:
if last2 != -1:
dist = i - last2
minDistance = min(minDistance, dist)
last1 = i
if strs[i] == str2:
if last1 != -1:
dist = i - last1
minDistance = min(minDistance, dist)
last2 = i
return minDistance if minDistance != sys.maxsize else -1
上一篇: javaweb实现app扫码登录功能
推荐阅读
-
字符串问题---数组中两个字符串的最小距离
-
数组中两个字符串的最小距离
-
字符串篇(python)——字符串数组中两个字符串的最小距离
-
字符串问题---字符串中数字子串的求和
-
Java中字符数组和字符串与StringBuilder和字符串转换的讲解
-
Java中String类(字符串操作)的10个常见问题和解决方法
-
力扣14练手 编写一个函数来查找字符串数组中的最长公共前缀 java版
-
编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。
-
postman工具字符编码问题_【20201012】Python编程中的字符串编码转换问题
-
Java提取两个字符串中的相同元素方法