uva146 求下乙個排列

2021-08-04 13:30:00 字數 346 閱讀 7531

題意:

給出乙個字串,求其字典序的下乙個排列。

思路:本來想用生成可重集排列的**,無意間翻到了函式next_permutation,這個專門用來求字典序下乙個排列的函式,簡直就是為這道題目而準備的,第一次用這麼短的**交題目。要想學的好,還是得多利用工具。

#include#include#includeusing namespace std;

char a[55];

int main(){

while(scanf("%s",a)&&a[0]!='#'){

int n=strlen(a);

if(next_permutation(a,a+n)) cout<

求下乙個排列數

演算法分析 逐位考察哪個能增大,乙個數右面有比它大的數存在,它就能增大,那麼最後乙個能增大的數是x 1,1應該增大到多少?增大到它右面比它大的最小的數y 3,應該變為23 顯然,應由小到大排 145,最終得到23145 整理以上,步驟是後找,小大,交換,翻轉 後找 字串中最後乙個公升序的位置i,即 ...

下乙個排列

給定乙個若干整數的排列,給出按正數大小進行字典序從小到大排序後的下乙個排列。如果沒有下乙個排列,則輸出字典序最小的序列。樣例 左邊是原始排列,右邊是對應的下乙個排列。1,2,3 1,3,2 3,2,1 1,2,3 1,1,5 1,5,1 思路 1 先從右到左找到第乙個不屬於非最大字典序排列的元素l,...

下乙個排列

給定乙個若干整數的排列,給出按正數大小進行字典序從小到大排序後的下乙個排列。如果沒有下乙個排列,則輸出字典序最小的序列。左邊是原始排列,右邊是對應的下乙個排列。1,2,3 1,3,2 3,2,1 1,2,3 1,1,5 1,5,1 剛開始看這個題目沒有看懂,在網上蒐集一番資料後,懂得了題目想要做的事...