例如输入{abc},则输出有{},{a},{b},{c},{ab},{ac},{bc},{abc}
C# 递归 codes:
static void Main(string[] args)
{
string[] outStr=OutputString("ABC");
foreach(string str in outStr)
{
Console.WriteLine(str);
}
Console.ReadKey();
}
static string[] OutputString(string str)
{
if (str == string.Empty)
{
return new string[] { string.Empty };
}
string[] result = new string[1 << str.Length];
for (int i = 0; i < 1 << str.Length - 1; i++)
{
result[i] = OutputString(str.Remove(0, 1))[i];
}
for (int i = 1 << str.Length - 1; i < 1 << str.Length; i++)
{
result[i] = string.Format("{0}{1}", str[0], OutputString(str.Remove(0, 1))[i - (1 << str.Length - 1)]);
}
return result;
}
output result:
C
B
BC
A
AC
AB
ABC
本文介绍了一个使用C#实现的递归算法,该算法能够生成给定字符串的所有可能子集,包括空字符串和原字符串本身。通过递归调用,算法能够构造出输入字符串中所有字符的组合。
7635

被折叠的 条评论
为什么被折叠?



