First non A till we find A
\nclass Solution:\n    def smallestString(self, s: str) -> str:\n        n = len(s)\n        if s == "a" * n:\n            return s[:-1] + "z"\n        f = 0\n 
```\nclass Solution:\n    def smallestString(self, s: str) -> str:\n        n = len(s)\n        if s == "a" * n:\n            return s[:-1] + "z"\n        f = 0\n        while f < n and s[f] == "a":\n            f += 1\n        t = f\n        while t < n and s[t] != "a":\n            t += 1\n        return s[:f] + "".join(chr(ord(c) - 1) for c in s[f:t]) + s[t:]\n```
['Python']