【发布时间】:2019-02-27 05:46:18
【问题描述】:
我正在编写一个程序,它接收多个字母,从中构建单词并返回可以在单词库(如英语词典)中找到的有意义的单词。
首先,我从两个 for 循环开始,它们接受一个字母并按升序添加所有其他字母:如果我给出 (A, D, B, H),输出将是:AD、ADB、ADBH、DA 、DAB、DABH 等。
var scrambledWords = new List<string>();
for (int i = 0; i < buildingMaterial.Count; i++)
{
firstBuildUp = buildingMaterial[i];
for (int j = 1; j < buildingMaterial.Count; j++)
{
if (buildingMaterial[j] == buildingMaterial[i])
continue;
firstBuildUp += buildingMaterial[j];
scrambledWords.Add(firstBuildUp);
}
}
现在我正在尝试找出获得这些字母的所有其他组合的最佳方法。
- 是否有更多的 for 循环,但条件括号中的条件不同?
- 是否为每个字母创建新列表并单独操作每个列表,然后将它们组合在一起?
- 是使用 Linq 吗?
我正在尝试更多不同条件的 for 循环,但想知道这是否是实现我目标的最佳方式。
【问题讨论】: