字符串问题---数组中两个字符串的最小距离
2017-08-19 18:59
309 查看
【题目】
给定一个字符串数组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实现的代码。
给定一个字符串数组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
相关文章推荐
- 求数组中两个字符串的最小距离 Python 版
- 数组中两个字符串的最小距离
- 数组中两个字符串的最小距离
- 字符串之数组中两个字符串的最小距离
- 字符串数组中两个字符串的最小距离
- python求解数组中两个字符串的最小距离
- 【谷歌面试题】求数组中两个元素的最小距离
- 数组中两个元素的最小距离
- EditDistance,求两个字符串最小编辑距离,动态规划
- 两数组最小距离问题
- Submission Details (两个字符串的最小距离)【leetcode】
- 《编程之美》- 3.3 - 计算字符串相似度 即 最小编辑距离问题
- 求数组中两个元素的最小距离
- 两数组最小距离问题
- 数据结构面试题总结3——数组:求数组中两个元素的最小距离
- 两个排序数组合并第k或前k个最小值问题
- [LeetCode]-Edit Distance 两个字符串之间最小编辑距离
- 求数组中两个元素的最小距离
- 两个有序数组,从中各取一个组成pair,求和最小的前K个pair(杨氏矩阵top k问题)
- 求数组中两个元素的最小距离