2017-04-25 32 views
1

这个问题是关于变化没有重复的主题(是的,我做了研究,我只需要一些对我的任务非常独特的问题的见解)。用扭曲c生成组合和变化#

本质上,我的任务是编写一个例程,查找5位字符串的所有可能的变体,然后将这些字符串添加到列表中。关于我的问题棘手的是,字符串中的前3个数字是八进制数字0-7,字符串中的最后两个数字是字母数字表示0-7或A-Z *(不包括字母I和O)。

通过我的研究,我已经能够想出八进制集合和字母数字集合的单独组合。我还将这些组合显示给调试器,以确保它正在工作。

static void Main() 
    { 
     string[] octalset = { "0", "1","2","3","4","5","6","7" }; 

     List<string> tracknum15 = new List<string>(); 
     List<string> tracknum19 = new List<string>(); 

     var v = new Variations<string>(octalset,3,GenerateOption.WithRepetition); 

     foreach (var vv in v) 
     { 

      System.Diagnostics.Debug.WriteLine(string.Join("", vv)); 
      tracknum15.Add(vv); 
     } 

     string[] alphanumericset = { "0", "1", "2", "3", "4", "5", "6", "7", "A", "B", "C", "D", "E", "F", "G", "H", "J", "K", "L", "M", "N", "P", "Q", "S", "T", "U", "V", "W", "X", "Y", "Z" }; 

     var a = new Variations<string>(alphanumericset, 2, GenerateOption.WithRepetition); 

     foreach (var aa in a) 
     { 
      System.Diagnostics.Debug.WriteLine(string.Join("", aa)); 
     } 
    } 

我的主要问题是,我无法弄清楚如何生成其中前三个数字是八进制,最后两个是字母数字组合的一个列表。第二个问题是我在生成它们之后将我的组合添加到列表时遇到问题。

我将继续自己的工作,但我从比我更有经验的人那里得到的洞察力有助于解决我的问题。

任何帮助表示赞赏!

回答

0

如果我理解你的问题正确,您要创建的每一个可能的字符串开始用3个OCTS,然后从组0-7 AZ排除我和O.

2个元素这听起来像是你将需要2个循环,一个创建从000到777的每个八进制数,第二个内部循环添加您的2个元素部分。看到这里的嵌套循环,https://www.tutorialspoint.com/csharp/csharp_nested_loops.htm

的string.join(“”,VV)不是必需的,只是做:(串)VV

+0

所以,如果我窝在for循环的字母数字字符,这将让我找到八进制数字(000-777)和字母数字组(00-ZZ)的每种组合并将它们显示为一个字符串?我已经分别生成了所有八进制和所有alpha组合的列表。此外,我试图使用没有连接(“”,vv)的演员,它给了我一个错误。 – kdun0508

+0

是啊,你总是可以创建一个八进制,如000,然后所有字母数字为它,然后你做第二个八进制,并再次做所有字母数字 – Master117

+0

好吧,在我上面发布的代码第一个foreach循环创建八进制数。之后,我有如何说.....现在我有000我想要显示与它一起的字母数字字符的每个组合的语法。你能澄清一点,你会如何去做代码? – kdun0508