给定一个字符串''onmlkjihgfedcba'
对它升序排序,我们知道这是完全逆序,交换次数(n-1)*n/2
n=15带入即可
我的疑惑在于,已知交换次数[0,(n-1)*n/2]
那么给定一个交换次数 字符串的排列顺序是唯一的吗
简单来说就是两者是不是一一对应的,如果是或不是,为什么呢?
请求指导
不是。
例如 omn 和 nom 交换次数都是 1,也就是说:对长度为 3 的字符串,已知交换次数为 1 时有 2 种可能的排序。
换个思路,甚至可以求出有多少种可能的排序:
对于一个有序的字符串,任意交换 1次有多少种结果? n-1
对于一个有序的字符串,任意交换 2次有多少种结果?
如果允许返回式交换,有 (n-1)(n-1) 种结果;如果不允许返回,有 (n-1)(n-2) 种结果。
返回式交换,并没有这个术语。
第一次交换 123 -->132
如果第二次交换不做限制,也有 n-1 种可能。
但是 132 -->123 就返回原来的值了,也就是 两次交换后的结果相当于没有交换。有时我们认为这种情况应该排除,所以第二次交换 只有 n-2 种情况。