第49天(中等题 数据结构)

打卡第四十九天
2道中等题
image

题目:
image

思路:
image

代码:

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;
    }
};

耗时≈一小时 明天继续

posted @ 2025-12-09 00:17  Wy0518  阅读(4)  评论(0)    收藏  举报