題面:
【問題描述】
有 a=a1a2a3„am,b=b1b2b3„bn 兩個字串(均為小寫字母)現在要通過以下操作將 a
或 a 的乙個字尾修改為 b:
1. 刪除 刪除掉 a 中的某乙個字元。
2. 新增 將某乙個字元新增到 a 中任意位置。
3. 替換 將 a 中某一字元替換為另乙個。
求出最小操作次數。
【輸入格式】
第一行為字串 a。第二行為字串 b(長度均不超過 1000)。
【輸出格式】
乙個正整數,最小操作次數。
【樣例輸入】
aaab
aabc
【樣例輸出】
1【提示】
1 次操作 使用字尾 aab 在末尾插入 c。
3種操作都是對字串的修改 所以可以考慮動態規劃 狀態陣列是二維陣列 a[i][j] ,[i]表示a的第i位 [j]表示b的第[j]位 a[i][j] 表示在a[i]和b[j]時的最小運算元
因為是3種操作 每一種操作都可以對應一種轉移方式 而要求運算元最小 所以轉移方程為:a[i][j]=min(a[i-1][j-1]+a[i-1]==b[i-1],a[i-1][j]+1,a[i][j-1]+1);
**:
#includeint a[1026][1026];int main()
scanf("%s %s",a,b);
i1=strlen(a);
j1=strlen(b);
for(int i=1;i<=i1;i++)
for(int j=1;j<=j1;j++)
printf("%d",a[i1][j1]);
return 0;
}
修改字串
將給定字串中連續出現3次的小寫字母替換為改小寫字母在字母表中的下乙個字母 z變為a 大寫字母和其他字元不處理,仍然保留。要求最終輸出的字串中不再存在任何連續出現3次的小寫字母。例如字串 atrcccert893 45ae 經過處理後應該為 atrdert893 45ae int changestri...
修改字串
1.字串變數 char s hello world int main 2.不知道為什麼不輸出,因此嘗試以下 int main s是乙個指標,初始化化為指向乙個字串常量 由於這個常量所在的地方,所以實際上s是const char s,但是由於歷史的原因,編譯器接受不帶const的寫法 但是試圖對s所指...
python 修改字串
在python中,字串是不可變型別,即無法直接修改字串的某一位字元。因此改變乙個字串的元素需要新建乙個新的字串。常見的修改方法有以下4種。方法1 將字串轉換成列表後修改值,然後用join組成新字串 s abcdef 原字串 s1 list s 將字串轉換為列表 s1 a b c d e f 列表的每...