假定一种编码的编码范围是a-y的25个字母,从1位到4位的编码,如果我们把该编码按字典序排序,形成一个数组如下:
a,aa,aaa,aaaa,aaab,aaac,…,…,b,ba,baa,baaa,baab,baac,… …,yyyw,yyyx,yyyy
其中a的Index为0,aa的Index为1,aaa的Index为2,以此类推。
编写一个函数,输入是任意一个编码,输出这个编码对应的index,如:
输入:baca
输出:16331
例:a排列组合
> {a,aa,aaa,aaaa,aaab,......,aaay,
aab,aaba,aabb,......,aaby,
... ...,
aay,aaya,aayb,......,aayy,
ab,aba,abaa,abab,......,abay,
..., ...,
ay,aya,ayaa,ayab,......,ayay,
..., ...,
ayyy,
}
若首字母为a共有多少种组合:
①a 1种
②a _ 25种
③a _ _ 25x25种
④a _ _ 25x25x25种
若第二个字母为a共有多少种组合:
① a 1种
②_a _ 25种
③_a _ _ 25x25种
若第三个字母为a共有多少种组合:
①_ a 1种
② a _ 25种
若第四个字母为a共有多少种组合:
① _ _ a 1种
所以当baca时以b开头时,前面有a开头(b-a)x(1+25+2525+252525),第二位是a,(a-a)+1(但不能为空),第三位为c,(c-a)x(1+25)+1,第四位为a,(a-a)+1
baca=(1+2