C# 排列与子排列

        static StringCollection Permutations(string input)
{
if (input == null)
{
throw new Exception("input can't be null");
}
StringCollection results = new StringCollection();
char firstChar = ' ';
string remainString = "";
string temp = "";
if (input.Length<=1)
{
results.Add(input);
return results;
}

for (int i = 0; i < input.Length; i++)
{
firstChar = input[i];
remainString = input.Remove(i, 1);
StringCollection remainPermutationsString = Permutations(remainString);
for (int j = 0; j < remainPermutationsString.Count; j++)
{
temp = firstChar + remainPermutationsString[j];
results.Add(temp);
}
}
return results;
}

static StringCollection Anagram(string input)
{
StringCollection results = Permutations(input);
results.Remove(input);
return results;
}

static bool IsAnagram(string str1, string str2)
{
if (str1== null || str2 == null)
{
throw new Exception("input string can't be null");
}
StringCollection anagram = Anagram(str1);
foreach (string item in anagram)
{
if (item.Equals(str2))
{
return true;
}
}
return false;
}

转载于:https://www.cnblogs.com/Ligeance/archive/2012/03/12/2391724.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值