我正在阅读关于 2 个字符串之间的编辑距离的问题。
它可以通过使用编辑距离公式的动态规划来解决。我无法理解的是它的用处。首先,这与知道 2 个字符串的最长公共子序列有何不同?
如果想法是选择一个具有最小编辑距离的字符串,您不妨在字符串中使用最大 LCS。对吗?
此外,当我们实际编写代码来进行替换时,代码将类似于以下内容:
if(a.length == b.length){
for(int i = 0;i < a.length;i++){
a[i] = b[i];
}
}
else{
a = new char[b.length];
for(int i = 0;i < a.length;i++){
a[i] = b[i];
}
}
我的意思是替换字符。进行分配和检查字符是否相同之间有什么区别,如果不是,那么只有在运行时进行分配?两者都不是恒定时间操作吗?
我对这个问题有什么误解?