int getMinOperationNum(string a, string b) {
int len = a.length();
int curA = len - 1, prevA = len - 1;
int curB = len - 1, prevB = len - 1;
int result = 0;
while (curA >= 0) {
if (a[curA] == b[curB]) {
/*(curB-curA)-(prevB-prevA) //指定字符还需移动距离
* curB-curA : 字符在移动后的位置与在原字符串中位置的距离,
* prevB-prevA: 当前字符已经移动的距离*/
result += prevA - curA - (prevB - curB);
prevA = curA;
prevB = curB;
curA--;
curB--;
} else {
curA--;
}
}
//特殊情况 abcd,acbd
result += prevA;
return result;
}
最少操作次数的简易版
最新推荐文章于 2024-05-11 21:18:15 发布