Mosafers
چهارشنبه 30 مهر 1393, 15:04 عصر
سلام اساتید محترم یه سوال و کمک در تغییر روال کد داشتم.
یه کد باشه که اینطور کلماتی بسازه ؟
a
b
c
d
تا
z
... ادامه :
aa
ab
ac
تا
az
...دوباره:
aaa
aab
aac
aad
و غیره...
من با کد زیر کلمات رو ساختم ولی محدود بود :
private void button2_Click(object sender, EventArgs e)
{
foreach (var result in GetPermutations("abcdefghijklmnopqrstuvwxyz", 3))
{
MessageBox.Show (result );
}
}
public static IEnumerable<string> GetPermutations(string letters, int max = 3, int curr = 0)
{
if (curr < max - 1)
{
for (int a = 0; a < letters.Length; a++)
{
string firstHalf = letters.Substring(a, 1);
string subset = letters.Substring(a + 1);
foreach (string secondHalf in GetPermutations(subset, max, curr + 1))
{
//Console.Write("1st: {0}, 2nd: {1}; set: {2}", firstHalf, secondHalf, subset);
yield return firstHalf + secondHalf;
}
}
}
else
yield return String.Empty;
}
با تشکر و سپاس
یه کد باشه که اینطور کلماتی بسازه ؟
a
b
c
d
تا
z
... ادامه :
aa
ab
ac
تا
az
...دوباره:
aaa
aab
aac
aad
و غیره...
من با کد زیر کلمات رو ساختم ولی محدود بود :
private void button2_Click(object sender, EventArgs e)
{
foreach (var result in GetPermutations("abcdefghijklmnopqrstuvwxyz", 3))
{
MessageBox.Show (result );
}
}
public static IEnumerable<string> GetPermutations(string letters, int max = 3, int curr = 0)
{
if (curr < max - 1)
{
for (int a = 0; a < letters.Length; a++)
{
string firstHalf = letters.Substring(a, 1);
string subset = letters.Substring(a + 1);
foreach (string secondHalf in GetPermutations(subset, max, curr + 1))
{
//Console.Write("1st: {0}, 2nd: {1}; set: {2}", firstHalf, secondHalf, subset);
yield return firstHalf + secondHalf;
}
}
}
else
yield return String.Empty;
}
با تشکر و سپاس