【发布时间】:2019-10-07 21:00:41
【问题描述】:
我很确定这个问题有一个技术术语,但不幸的是我不知道。 我有一个字母字符集,要求是创建具有最大长度的所有字符的组合
想法是(示例):
- 生成 A、AA、AAA、AAAA、AAAAAA、AAAAAA 的集合
- 下一个:A、AB、ABA、ABAA、ABAAAA
- 下一个 A、AB、ABB、ABBA、ABBAA
原因: 我们必须查询一个提供搜索结果的 API。
但是,如果我没有从 AAA 上的 API 获得搜索命中,我就不需要再搜索 AAAA,因为它也无法获得搜索命中。然后我可以转到 AAB。
问题:
我的问题是我不确定如何构建代码才能实现这一目标。我缺乏结构方法。 我已经尝试过嵌套循环,但不幸的是我没有得到结果。 我也使用过组合库,但它们专注于其他问题。
非常感谢您的提示!
【问题讨论】:
-
您是否正在寻找
yield上下文关键字? docs.microsoft.com/en-us/dotnet/csharp/language-reference/… 让您有机会通过方法动态生成IEnumerable的成员。 -
所以它可以上升到字母表中的所有 26 个字母?
-
您是在寻求有关列出所有可能组合的帮助,还是在寻求有关如何在 API 调用中跳过一代的逻辑方面的帮助?
-
是的,我知道如何使用
yield,谢谢。但是我的问题是如何在这里生成逻辑。 -
很不清楚你有什么问题......显然在你的递归解决方案中你有类似
if (continueRecursion) recursiveCall() else return;的东西应该生成你想要的列表......所以没有实际看到代码它不是真的可以帮忙...