题目 1205: 字符串的修改(java)
题目描述
依旧是字符串处理,设A和B是两个字符串。我们要用最少的字符操作次数,将字符串A转换为字符串B。这里所说的字符操作共有三种:
- 删除一个字符;
- 插入一个字符;
- 将一个字符改为另一个字符。
对任给的两个字符串A和B,计算出将字符串A变换为字符串B所用的最少字符操作次数。
输入
第一行为字符串A;第二行为字符串B;字符串A和B的长度均小于200。
输出
只有一个正整数,为最少字符操作次数。
样例输入
sfdxbqw
gfdgw
样例输出
4
import java.util.Scanner;
import java.lang.String;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str1=sc.nextLine();
String str2=sc.nextLine();
int len1=str1.length();
int len2=str2.length();
int len=len1;
if(len2>len1)
len=len2;
int former=0;//用来确定相同字符的前后位置
for(int i=0;i<len1;i++){
for(int j=0;j<len2;j++){
if(str1.charAt(i)==str2.charAt(j)){
if(former<j){
former=j;
len--;
}
}
}
}
System.out.println(len);
}
}
题解:
排除两个字符串中相同且位置前后也相同的字符,两个字符串余下的最长的长度即为所求。