方法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);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】