Lexicographically Smallest String After Applying Operations
You receive a string s of even length consisting of digits from 0 to 9 , and two integers a and b .
You can apply either of the following two operations any number of times and in any order on s:
-
Add
ato all odd indices ofs(0-indexed) . Digits post9are cycled back to0. For example, ifs = "3456"anda = 5,sbecomes"3951". -
Rotate
sto the right bybpositions. For example, ifs = "3456"andb = 1,sbecomes"6345".
Produce the lexicographically smallest string you can obtain by applying the above operations any number of times on s .
A text a is lexicographically smaller than a string b (of the same length) if in the first position where a and b differ, string a has a letter that appears earlier in the alphabet than the corresponding letter in b . For example, "0158" is lexicographically smaller than "0190" because the first position they differ is at the third letter, and '5' comes before '9' .
Input: s = "5525", a = 9, b = 2
Output: "2050"
Explanation: We can apply the following operations:
Start: "5525"
Rotate: "2555"
Add: "2454"
Add: "2353"
Rotate: "5323"
Add: "5222"
Add: "5121"
Rotate: "2151"
Add: "2050"
There is no way to obtain a string that is lexicographically smaller than "2050".
Input: s = "74", a = 5, b = 1
Output: "24"
Explanation: We can apply the following operations:
Start: "74"
Rotate: "47"
Add: "42"
Rotate: "24"
There is no way to obtain a string that is lexicographically smaller than "24".
Input: s = "0011", a = 4, b = 2
Output: "0011"
Explanation: There are no sequence of operations that will give us a lexicographically smaller string than "0011".
Constraints
2 <= s.length <= 100s.lengthis even.sconsists of digits from0to9only.1 <= a <= 91 <= b <= s.length - 1
Did this problem appear in one of your interviews?
Responses stay private.
