代码之家  ›  专栏  ›  技术社区  ›  Hassen

如何在C_中生成所有可能的3个字符字符串?

  •  0
  • Hassen  · 技术社区  · 15 年前

    问题是:

    如何生成C_中所有可能的3个字符字符串的列表?

    克莱尔说,那是64人的地盘 和90

    2 回复  |  直到 12 年前
        1
  •  26
  •   Mehrdad Afshari    15 年前
    IEnumerable<string> GetAllStrings(params char[] inputCharacterSet) {
        return from n in inputCharacterSet
               from m in inputCharacterSet
               from k in inputCharacterSet
               select new string(new [] { n, m, k });
    }
    
        2
  •  7
  •   Yuliy    15 年前
    public IEnumerable<String> Get3CharStrings(char[] domain)
    {
        foreach(char a in domain)
         foreach(char b in domain)
          foreach(char c in domain)
           yield return "" + a + b + c;
    }
    

    编辑: 这实际上比Mehrdad发布的LINQ解决方案慢了很多,尽管大多数差异在于 return "" + a + b + c 而不是 return new string(new[] { a, b, c}) .

    实际统计(26个字符的字母表,10000次迭代:

    迈尔达密码:72.983秒
    我的代码:127.205秒
    我的代码和Mehrdad的返回声明:75.055秒