문자열이 ABC
이고 재귀를 사용하여 모든 형식을 얻으려고합니다.재귀 적으로 문자열 형식을 얻습니다.
A
B
C
AB
AC
BC
는 현재, 나는 문제가 발생하고있어이 그 일을 왜 내가 그림을 보일 수 없다 예를 들어, 내 목표는 다음과 같이 출력 모습 확인하는 것입니다. 내 코드를 단계별로 실행하여 return temp
에 도달하면 기능이 이미 완료되었지만 Passwords(word.Substring(start + 1, end - 1), start + 1, end);
으로 다시 돌아갑니다. 이 작업을 수행하면 내 목록에 포함 된 모든 요소가 제거됩니다.
class Program
{
static void Main(string[] args)
{
string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\words.txt";
string text = "abc";
List<string> passwords = Passwords(text, 0, text.Length);
foreach (string password in passwords)
{
using (StreamWriter writer = new StreamWriter(path))
{
Console.WriteLine(password);
writer.WriteLine(password);
}
}
}
public static List<string> Passwords(string word, int start, int end)
{
List<string> temp = new List<string>();
if (start == end)
{
temp.Add(word);
}
else if (word.Length == 2)
{
char[] input = word.ToCharArray();
string letter1 = input[0].ToString();
string letter2 = input[1].ToString();
string s = letter2 + letter1;
temp.Add(s);
}
else
{
if (start < end)
{
Passwords(word.Substring(start + 1, end - 1), start + 1, end);
}
}
return temp;
}
}
누구든지 내가 옳은 방향으로 잘못 가르 칠 수 있도록 도와 줄 수 있습니까?
이 있어야 많은 여기에 ... 질문에 "어떻게 XXXXX의 모든 순열을 생성하기 위해"몇 가지 [비 재귀 (http://stackoverflow.com/questions/11208446/generating-permutations-of- 가장 효율적인 집합) ... 및 [FAQ : 문자열에 Chars를 재 배열하는 C# 알고리즘] (http://stackoverflow.com/questions/127704/algorithm-to-return-all-combinations-of -k-elements-from-n). –