九度 1120 全排列

2021-08-08 08:13:35 字數 1070 閱讀 3186

題目描述:

給定乙個由不同的小寫字母組成的字串,輸出這個字串的所有全排列。

我們假設對於小寫字母有』a』 < 『b』 < … < 『y』 < 『z』,而且給定的字串中的字母已經按照從小到大的順序排列。

輸入

輸入只有一行,是乙個由不同的小寫字母組成的字串,已知字串的長度在1到6之間。

輸出

輸出這個字串的所有排列方式,每行乙個排列。要求字母序比較小的排列在前面。字母序如下定義:

已知s = s1s2…sk , t = t1t2…tk,則s < t 等價於,存在p (1 <= p <= k),使得

s1 = t1, s2 = t2, …, sp - 1 = tp - 1, sp < tp成立。

樣例輸入

abc樣例輸出

abc

acb

bac

bca

cab

cba提示

每組樣例輸出結束後要再輸出乙個回車。

解題思路:

dfs+遞迴。

能想到是遞迴,但是一直沒想出來怎麼回溯,還是看了別人的**才會做,感覺也是似懂非懂,換個題不知道還能不能做出來。

ac**:

#include 

#include

const

int maxn = 10;

bool vis[maxn];

char dat[maxn];

void dfs(char a, int n)

for (int i = 0; i < len; i++)

}}int main()

dfs(a, 0);

printf("\n");

}fclose(stdin);

return

0;}

九度oj 1120 遞迴(dfs)

遞迴 九度1120 全排列

題目描述 給定乙個由不同的小寫字母組成的字串,輸出這個字串的所有全排列。我們假設對於小寫字母有 a b y z 而且給定的字串中的字母已經按照從小到大的順序排列。輸入 輸入只有一行,是乙個由不同的小寫字母組成的字串,已知字串的長度在1到6之間。輸出 輸出這個字串的所有排列方式,每行乙個排列。要求字母...

九度題目1120

題目描述 給定乙個由不同的小寫字母組成的字串,輸出這個字串的所有全排列。我們假設對於小寫字母有 a b y z 而且給定的字串中的字母已經按照從小到大的順序排列。輸入 輸入只有一行,是乙個由不同的小寫字母組成的字串,已知字串的長度在1到6之間。輸出 輸出這個字串的所有排列方式,每行乙個排列。要求字母...

全排列 相似度

題目描述 小g通過擺放一些城市和道路構成了乙個世界地圖。趁著小g出去玩的時候,大g把小g的世界地圖上的城市全部打亂並放在了原來這些城市所在的位置 並不是一一對應 又修改了一些道路。小g玩完回來後發現自己的東西被打亂了,感到非常生氣,但是他又被乙個更有趣的問題吸引了 被修改之後的世界地圖與原來的世界地...