2024/07/27 每日一题

LeetCode 3106 满足距离约束且字典序最小的字符串

方法1:贪心

class Solution:
    def getSmallestString(self, s: str, k: int) -> str:
        ans = list(s); res = ord('a')
        for i, x in enumerate(map(ord, ans)):
            cnt = min(x - res, res + 26 - x)
            if k < cnt:
                ans[i] = chr(x - k); break
            ans[i] = 'a'; k -= cnt
        return "".join(ans)
  • String.toCharArray() 将字符串转为字符数组
class Solution {
    public String getSmallestString(String s, int k) {
        char[] ans = s.toCharArray();
        for (int i = 0; i < s.length(); i++) {
            int cnt = Math.min(ans[i] - 97, 123 - ans[i]);
            if (k < cnt) {
                ans[i] -= k; break;
            }
            ans[i] = 'a'; k -= cnt;
        }
        return new String(ans);
    }
}
posted @   Koonan-Edogawa  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示