1625. Lexicographically Smallest String After Applying Operations
问题:
给定一个由0~9构成的字符串s
对其有两种操作:
- 偶数位置+a(超过9,则从0开始循环)
- 例:if
s = "3456"
anda = 5
,s
becomes"3951"
.
- 例:if
- 字符串向后移动 b位(后面的字符循环到字符串前部)
- 例:if
s = "3456"
andb = 1
,s
becomes"6345"
.
- 例:if
求进行多次操作后,能获得的数值最小的字符串是什么。
解法:BFS
本题的操作会出现字符串循环出现。
- 状态:
- 字符串s,
- visited标记已经访问过的字符串。
- 选择:
- add
- rotate
对于每次出队字符串cur,和结果res取最小
最终遍历完成,得到res,即为最小。
代码参考: