第49天(中等题 数据结构)
打卡第四十九天
2道中等题

题目:

思路:

代码:
class Solution {
public:
long long shiftDistance(string s, string t, vector<int>& nextCost, vector<int>& previousCost) {
long long dis[26][26];//预处理:计算所有字母对之间的最小转换成本
for (int i = 0; i < 26; i++) for (int j = 0; j < 26; j++) {
long long x = 0;
for (int k = i; k != j; k = (k + 1) % 26) {
x += nextCost[k];// 向前移动的成本
}
long long y = 0;
for (int k = i; k != j; k = (k + 25) % 26) {
y += previousCost[k];// 向后移动的成本
}
dis[i][j] = min(x, y);// 取最小值
}
long long ans = 0;
for (int i = 0; i < s.size(); i++) {
ans += dis[s[i] - 'a'][t[i] - 'a'];//计算字符串中每个字符的转换成本并求和
}
return ans;
}
};
耗时≈一小时 明天继续

浙公网安备 33010602011771号