如果不需要自己造轮子,工程上可以这样,伪码:
a = '312'
b = sort(a) # 直接造出要最后的字符串123
求从 a 变换成 b 的步数,这是标准的编辑距离算法,有python实现的,也可以直接掉包
pip install python-Levenshtein
import Levenshtein as Le
step = Le.distance(a,b)
【 在 SHENOK 的大作中提到: 】
: 题目: 给定前N个自然数的一个乱序排列, 比如 3 1 2, 求能让其顺序排列的最小操作次数。其“操作”只有一种,即对任何一个子序列反序。 所以,312,需要操作两次 312-》321-》123。输出2.
: 输入4321 ,输出1.
:
: ...................
--
FROM 123.113.63.*