中易网

包含N个不同字母全排列的最短字符串长度是多少

答案:3  悬赏:60  
解决时间 2021-01-17 22:46
  • 提问者网友:欲劫无渡
  • 2021-01-17 18:28
包含N个不同字母全排列的最短字符串长度是多少
最佳答案
  • 二级知识专家网友:長槍戰八方
  • 2021-01-17 18:40
固定字符的组合就一种,要求的是全排列吧。
如果N个字符各自不同的话,思路也不难,
就是若想求N个字符的全排列,那么就把最后一个字符和第i个字符交换并求其余字母的N-1全排列。
(伪)代码如下:

void all_par(char[] arr, int n)
{
if(n == 0)

printf("%s\n", arr);

for(i = 0; i
{

swap(&arr[n-1], &arr[i]);

all_par(arr, n-1);

swap(&arr[n-1], &arr[i]);

}

}

void swap(char *a, char *b)
{
char temp = *a;

*a = *b;

*b = temp;

}
全部回答
  • 1楼网友:醉吻情书
  • 2021-01-17 19:53
我试出来的,以数字为例:
N=1:1!= 1
字符串:1
N=2:1!+ 2!= 3
字符串:1 2 1
N=3: 1!+ 2!+ 3!= 9
字符串:1 2 3 1 2 1 3 2 1
1N=4:1!+ 2!+ 3!+ 4!=33
字符串:1 2 3 4 1 2 3 1 4 2 3 1 2 4 3 1 2 1 3 4 2 1 3 2 4 1 3 2 1 4 3 2 1
N=5:1!+ 2!+ 3!+ 4!+ 5!=153
这个有点长,就没有试
长度<=5的时候都符合这种规律,即阶乘的和,大于5的情况我就不知道对不对了,但我觉得应该是这样,即:
1!+ 2!+ ··· + (N - 1)! + N!
  • 2楼网友:忘川信使
  • 2021-01-17 19:01
包含N个不同字母全排列的最短字符串长度是多少
全排列啊,当然是N
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息