正文索引 [隐藏]

传送门

好久没写博客了啊…考试周真是烦人。216周赛可以说是最简单的一次周赛了吧,贪就vans了。

T1 检查两个字符串数组是否相等

签到打卡。

class Solution {
public:
    bool arrayStringsAreEqual(vector<string>& word1, vector<string>& word2) {
        string str1 = "", str2 = "";
        for(auto el : word1) {
            str1 += el;
        }
        for(auto el : word2) {
            str2 += el;
        }
        
        return str1 == str2;
    }
};

T2 具有给定数值的最小字符串

贪心。首先先给n个位子上每个位子放一个a,然后从末尾开始填字符,如果当前k>25,余额足够,直接填z;如果k<= 25,就直接填第k个字字母进去。最后得到的这个字符串就一定是满足题意的序列。

class Solution {
public:
    string getSmallestString(int n, int k) {
        string ans = "";
        k -= n;
        for(int i = 0; i < n; i++) {
            int cur = min(k, 25);
            k -= cur;
            char ch = 'a' + cur;
            ans += ch;
        }
        reverse(ans.begin(), ans.end());

        return ans;
    }
};

T3 生成平衡数组的方案数

T4 完成所有任务的最少初始能量