日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数组中两个字符串的最小距离

發布時間:2025/4/5 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数组中两个字符串的最小距离 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目

  給定一個字符串數組strs,再給定兩個字符串str1和str2,返回strs中str1與str2的最小距離,如果str1或str2為null,或不在strs中,返回-1。

例子:strs = ['1','3','3','3','2','3','1'] , str1 = '1', str2 = '2' 返回2

基本思路

  從左到右遍歷strs,用變量last1記錄最近一次出現的str1的位置,用變量last2記錄最近一次出現str2的位置。如果遍歷到str1,那么i - last2就是當前的str1和左邊離它最近的str2之間的距離。如果遍歷到str2,那么i - last1就是當前的str2和左邊離它最近的str1之間的距離。用全局變量記錄最小距離即可。
?

def minDistance(strs,str1,str2):import sysif str1 == None or str2 == None or strs == None:return -1if str1 not in strs or str2 not in strs:return -1last1 = -1last2 = -1minDistance = sys.maxsizefor i in range(len(strs)):if strs[i] == str1:if last2 != -1:minDistance = min(minDistance,i-last2)last1 = iif strs[i] == str2:if last1 != -1:minDistance = min(minDistance,i-last1)last2 = ireturn minDistance if minDistance == sys.maxsize else -1

?

總結

以上是生活随笔為你收集整理的数组中两个字符串的最小距离的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。