您的位置:首页 > 其它

最少操作次数的简易版

2017-01-15 11:54 204 查看
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息