Skip to main content

20240627 2734 - Medium - Greedy

2734. Lexicographically Smallest String After Substring Operation

class Solution:
def smallestString(self, s: str) -> str:
res = ""
i = 0
while i < len(s):
if s[i] == "a":
if i == len(s) -1:
res += "z"
else:
res += "a"
else:
while i < len(s):
if s[i] == "a":
res += s[i:]
break
else:
res += chr(ord(s[i]) - 1)
i += 1
break
i += 1
return res