第20912题
C语言等级考试五级编程题:5位数字最少操作变换

给定初始字符串“12345”,需将其变换为包含5个0-9数字的目标字符串,可使用以下3种操作:

  1. 交换相邻的两个数字
  2. 将一个数字加1,若结果>9则变为0(最多使用3次)
  3. 将一个数字加倍,若结果>9则取除以10的余数(最多使用2次) 求最少经过多少次操作可以完成变换,无法变换则输出-1。

输入:最多100,000组数据,每组为1个5位数字字符串 输出:每组对应最少操作步数或-1

样例输入

12435
99999
12374

样例输出

1
-1
3

提示:测试数据量大,建议先以“12345”为初始状态做预处理广搜,记录所有可达状态的最少步数,查询时直接读取。