题解 | #牛群编号变更#
牛群编号变更
https://www.nowcoder.com/practice/9295f0f796b34793832710d5c939a619
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param word1 string字符串
* @param word2 string字符串
* @return int整型
*/
public static String string = "";
public int minDistance (String word1, String word2) {
// write code here
search(0, word1, word2, new StringBuffer());
int length = string.length();
int length1 = word1.length() - length;
int length2 = word2.length() - length;
return length1 + length2;
}
public static void search(int index, String s1, String s2,
StringBuffer stringBuffer) {
if (index == s1.length()) {
return;
}
stringBuffer.append(s1.charAt(index));
if (stringBuffer.length() > string.length() &&
s2.contains(stringBuffer.toString())) {
string = stringBuffer.toString();
}
search(index + 1, s1, s2, stringBuffer);
stringBuffer.deleteCharAt(stringBuffer.length() - 1);
search(index + 1, s1, s2, stringBuffer);
}
}
本题我并不是使用动态规划,而是使用递归方法,所用编程语言是java。
我们首先需要观察s1中随机抽取任意字符的最大数目是多少,且满足是s2的子序列,然后剩下的就是删除不是子序列的字符,插入s2中除了子序列的字符
查看14道真题和解析