給任意一字串,我們可透過字元換位,而得到新字串,如果我們加上序號(字典次序),則可用唯一的數字來區別不同位置的文字。例如,”acab”可得到12個不同的排列序列:如下圖所示。而acab 是排在第5位置。請寫一個程式可以作這種轉換,但要注意,字串的位置數,可以很大,但不會超過 $2^{31}-1$。
aabc | 1 |
aacb | 2 |
abac | 3 |
abca | 4 |
acab | 5 |
acba | 6 |
baac | 7 |
baca | 8 |
bcaa | 9 |
caab | 10 |
caba | 11 |
cbaa | 12 |
Input
每組測試資料1列,有1個僅包含小寫字元的字串(長度不會超過30),字串”#”代表輸入結束。
Output
每組測試資料輸出一個整數,代表輸入字串在序列中的位置(長度10,靠右對齊,請參考Sample Output)。
Sample Input
acab
bacaa
abc
cba
#
Sample Output
5
15
1