永发信息网

求助:有一字符串(由a~z、A~Z、0~1组成的16位的字符串),求助用穷举法穷举该字符串的全排列

答案:2  悬赏:10  手机版
解决时间 2021-11-29 18:22
  • 提问者网友:佞臣
  • 2021-11-29 08:35
求助:有一字符串(由a~z、A~Z、0~1组成的16位的字符串),求助用穷举法穷举该字符串的全排列
最佳答案
  • 五星知识达人网友:青灯有味
  • 2021-11-29 08:56
private void button1_Click(object sender, EventArgs e)
{
string str = this.richTextBox1.Text.Trim(); //输入字符串
this.Arrangement(str);// 得到该字符串的全排列 (字符串中不能包含重复的字符,否则可能有一样的排列
}

void Print(char[] p, int n) //输出一个排列
{
this.richTextBox1.AppendText(Environment.NewLine);
for (int i = 0; i < n; i++)
this.richTextBox1.AppendText(p[i].ToString());
}

void Swap(ref char x, ref char y)
{
char t = x;
x = y;
y = t;
}
void Recu(char[] p, int n, int k)
{
if (k == n)
Print(p, n);
else
{
for (int i = k; i < n; i++)
{
Swap(ref p[k], ref p[i]);
Recu(p, n, k + 1);
Swap(ref p[k], ref p[i]);
}
}
}

void Arrangement(string s)
{
char[] charArray = s.ToCharArray();
Recu(charArray, charArray.Length, 0);
}追问没有AppendText这个方法追答那就 this.richTextBox1.Text += Environment.NewLine;
for (int i = 0; i < n; i++)
this.richTextBox1.Text += p[i].ToString();
全部回答
  • 1楼网友:鱼忧
  • 2021-11-29 09:56
你想用它来生成一个密码库么?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯