easy python solution
Intuition\n Describe your first thoughts on how to solve this problem. \n\n# Approach\n Describe your approach to solving the problem. \n\n# Complexity\n- Time 
# Intuition\n<!-- Describe your first thoughts on how to solve this problem. -->\n\n# Approach\n<!-- Describe your approach to solving the problem. -->\n\n# Complexity\n- Time complexity:\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->\n\n- Space complexity:\n<!-- Add your space complexity here, e.g. $$O(n)$$ -->\n\n# Code\n```\nclass Solution:\n    def getSmallestString(self, s: str, k: int) -> str:\n        ans=""\n        for st in s:\n            if k<=0 or st=="a":\n                ans+=st\n                continue\n            val=ord(st)-96     #making in  26 indexed \n            dis=0\n\n            if val<=13:          # if before half\n                dis=val-1\n                if dis<=k: \n                    ans+="a"          # if possible making it a \n                else:                          \n                    ans+= chr(ord(st)-k)     # else reducing it as much possible\n\n            else:                        #second half\n                dis=((26-val)+1)%26\n                if dis<=k:\n                    ans+="a"              # if possible making it a \n                else:\n                    ans+= chr(ord(st)-k)     # else reducing it as much possible\n            k-=dis\n        return ans\n\n\n\n        \n```
['Python3']