1. 解题思路
思路来说这道题就是比较简单的一个贪婪算法,从头开始考察每一个字符串,给其分配距离不大于k的最小的字符即可。
2. 代码实现
给出python代码实现如下:
class Solution:
def getSmallestString(self, s: str, k: int) -> str:
def fn(ch1, ch2):
d = (ord(ch1) - ord(ch2)) % 26
return min(d, 26-d)
ans = ""
for ch in s:
for c in string.ascii_lowercase:
d = fn(ch, c)
if d <= k:
ans += c
k -= d
break
return ans
提交代码评测得到:耗时65ms,占用内存16.6MB。