華為OJ 計算字串的距離

2021-07-15 00:14:26 字數 1200 閱讀 3707

計算字串的距離

levenshtein 距離,又稱編輯距離,指的是兩個字串之間,由乙個轉換成另乙個所需的最少編輯操作次數。許可的編輯操作包括將乙個字元替換成另乙個字元,插入乙個字元,刪除乙個字元。編輯距離的演算法是首先由**科學家

levenshtein

提出的,故又叫

levenshtein distance

。ex:

字串a:abcdefg

字串b: abcdef

通過增加或是刪掉字元」g」

的方式達到目的。這兩種方案都需要一次操作。把這個操作所需要的次數定義為兩個字串的距離。

要求:

給定任意兩個字串,寫出乙個演算法計算它們的編輯距離。

請實現如下介面

/* 功能:計算兩個字串的距離

* 輸入:

字串a

和字串

b* 輸出:無

* 返回:如果成功計算出字串的距離,否則返回

-1*/

publicstaticintcalstringdistance (

string

chara, 

string

charb)

輸入描述:

輸入兩個字串

輸出描述:

得到計算結果

輸入例子:

abcdefg

abcdef

輸出例子:1

解答**:

#include#include #include #include using namespace std;

int dp[512][512];//構造一張表

int min(int a,int b,int c)

int calstringdistance (char str1,char str2)

{ int len1,len2,i,j;

len1 = strlen(str1);

len2 = strlen(str2);

int temp1,temp2,te***,temp;

dp[0][0] = 0;

//按行和列初始化

for(j=1; j

華為OJ(字串匹配)

題目 字串匹配 描述判斷短字串中的所有字元是否在長字串中全部出現 詳細描述 介面說明 原型 boolisallcharexist char pshortstring,char plongstring 輸入引數 char pshortstring 短字串 char plongstring 長字串 知識...

華為OJ(字串排序)

描述 編寫乙個程式,將輸入字串中的字元按如下規則排序。規則1 英文本母從a到 z排列,不區分大小寫。如,輸入 type 輸出 epty規則2 同乙個英文本母的大小寫同時存在時,按照輸入順序排列。如,輸入 baba 輸出 aabb規則3 非英文本母的其它字元保持原來的位置。如,輸入 by?e 輸出 b...

華為OJ字串反轉

描述 寫出乙個程式,接受乙個字串,然後輸出該字串反轉後的字串。例如 知識點陣列,指標 執行時間限制 10m記憶體限制 128輸入 輸入n個字元 輸出輸出該字串反轉後的字串 樣例輸入 abcd 樣例輸出 dcba 思路,後面的與前面的交換。include using namespace std inc...