快手 字串最小變換次數

2021-09-25 18:01:11 字數 584 閱讀 2834

#encoding=utf-8

import sys

#計算兩個字串有多少個相同的元素,不需要對應位置相等,只需要每個字串中的相對位置相等就行

#然後字串長度減去相同元素的個數。

def func():

str1 = sys.stdin.readline().strip("\n")

str2 = sys.stdin.readline().strip("\n")

res = 0

same_count=0

idx=0

for i in range(len(str1)):

ch=str1[i]

if ch in str2[idx:]:

ch_idx=str2[idx:].index(ch)

idx+=ch_idx+1

same_count+=1

print min( len(str1),len(str2) )-same_count+abs(len(str1)-len(str2))

if __name__=="__main__":

func()

最小週期字串出現次數

想要知道最短週期子串出現的次數,首先要知道最短週期子串是什麼,之後由目標串的長度 最短迴圈子串的長度就可以得到最短週期子串出現的次數.假設有乙個目標串為 abcabcabc 顯而易見 最短週期子串為abc 一是暴力查詢 如下 include include using namespace std i...

字串最小變換數(編輯距離)

給定兩個字串,已知可以使用三種方式進行變換 插入乙個字元 刪除乙個字元 更改乙個字元 請設計乙個演算法,找到兩個字串之間的經歷幾次最小變換,可以字串1轉換成字串2。這是一道典型的編輯距離的題目,即字串str1至少需要多少步才能到達字串str2。使用動態規劃的方法,dp i j 表示字串str的子串s...

字串變換

現有乙個字典,同時給定字典中的兩個字串s和t,給定乙個變換,每次可以改變字串中的任意乙個字元,請設計乙個演算法,計算由s變換到t所需的最少步數,同時需要滿足在變換過程中的每個串都是字典中的串。給定乙個string陣列dic,同時給定陣列大小n,串s和串t,請返回由s到t變換所需的最少步數。若無法變換...