現在有abcdefghijkl”12個字符,將其所有的排列中按字典序排列,給出任意一種排列,說出這個排列在所有的排列中是第幾小的?
3 abcdefghijkl hgebkflacdji gfkedhjblcia樣例輸出
1 302715242 260726926
題目分析:
本題的家嗎問題,在《算法入門經典》中有解答,對於每一個字符s,若在其後有k個字符小於s,則當前的序列的排序會增大k*f[12-i]
。
AC代碼:
/** *給出一個字符串,僅由a~l組成,每個出現一次,求給出字符串的字典序大小 *對於每一個字符s,若在其後有k個字符小於s,則當前的序列的排序會增大k*f[12-i] *其中f是每個數的階乘,i為s的位置,因此只需模擬每一位進行比較即可。 */ #include#include #include