问题描述
小U和小R有两个字符串,分别是SS和TT,现在小U需要通过对SS进行若干次操作,使其变成TT的一个前缀。操作可以是修改SS的某一个字符,或者删除SS末尾的字符。现在你需要帮助小U计算出,最少需要多少次操作才能让SS变成TT的前缀。
测试样例
样例1:
输入:
S = "aba", T = "abb"
输出:1
样例2:
输入:
S = "abcd", T = "efg"
输出:4
样例3:
输入:
S = "xyz", T = "xy"
输出:1
样例4:
输入:
S = "hello", T = "helloworld"
输出:0
样例5:
输入:
S = "same", T = "same"
输出:0
js解法一: 参考来自https://blog.csdn.net/m0_73302939/article/details/143974262
function solution(S, T) {
let count = 0 ;
let lenS = S.length;
let lenT = T.length;
if(!lenT || !lenS){
return 0;
}
// 遍历 S 和 T 的每个字符
for(let i = 0;i<lenS;i++){
if(i<lenT){
// 如果字符不同,累加修改操作
if(S[i]!=T[i]){
count++;
}
}else{
// 如果 S 的长度超出 T,需要删除剩余部分
count +=lenS - lenT
break;
}
}
return count;
}