計算文字間距的實現

2021-09-05 10:03:41 字數 1083 閱讀 3647

我們可以使用動態規劃的方式來計算文字間距,通過建立dp陣列將對比文字的問題分成多個子問題:

文字間的間距通常包含以下三種情況:

insert: abc -> abdc

remove: abc -> ab

update: abc -> adc

我們只需要計算不同情況下最短間距就可以了,具體實現方式如下:

def text_distance(str1, str2):

m, n = len(str1), len(str2)

# 構建二維陣列來儲存子問題的答案

dp = [[0 for x in range(n+1)] for x in range(m+1)]

# 利用動態規劃演算法,填充陣列

for i in range(m+1):

for j in range(n+1):

# 假設第乙個字串為空,則轉換的代價為j(j次的插入)

if i == 0:

dp[i][j] = j

# 同樣,假設第二個字串為空,則轉換的代價為i(i次的插入)

elif j == 0:

dp[i][j] = i

# 如果最後乙個字元相等,就不會產生代價

elif str1[i-1] == str2[j-1]:

dp[i][j] = dp[i-1][j-1]

# 如果最後乙個字元不一樣,則考慮多種可能性,並且選擇其中的最小值

else:

dp[i][j] = 1 + min(dp[i][j-1], # insert

dp[i-1][j], # remove

dp[i-1][j-1]) # replace

return dp[m][n]

我們可以驗證一下

text_distance('go', 'going')     # output:3

text_distance('whose', 'who') # output:2

text_distance('who', 'how') # output:2

CorelDRAW如何設定文字間距

文章介紹使用coreldraw設定文字字間距,提供四種調整文字字間距的方法 分別是段落面板 文字工具 選擇工具以及形狀工具,我們來逐一介紹下。文字行距調整方法一 段落面板泊塢窗 可精確調整 使用f8 文字工具 拖動滑鼠實現段落文字框,在框內單擊新增段落文字,屬性欄中單擊 文字屬性 按鈕,或者按下快捷...

oracle 計算時間間距

months between months between x,y 用於計算x和y之間有幾個月。如果x在日曆中比y早,那麼months between 就返回乙個負數。當x 和 y 之間的月份之差不是整月的時候,可以採用小數表示,例如 select months between 25 may 200...

iOS設定富文字行間距 字間距

我們在展示文字資訊時,經常會碰到換行自適應高度的文字,這時我們會發現換行之後,文字之間的行間距依然很小,導致看起來很擁擠,影響美觀。因此以下 就是來解決這些問題,新建乙個nsstring的類別,貼出如下 1 調整行間距,字間距 設定行間距和字間距 param string 字串 param line...