題目描述:
給定乙個由不同的小寫字母組成的字串,輸出這個字串的所有全排列。
我們假設對於小寫字母有』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玩完回來後發現自己的東西被打亂了,感到非常生氣,但是他又被乙個更有趣的問題吸引了 被修改之後的世界地圖與原來的世界地...