例如输入{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