【问题标题】:Combination of N strings with K letters [closed]N个字符串与K个字母的组合[关闭]
【发布时间】:2013-11-18 17:21:31
【问题描述】:

我尝试了多种方法,但我没有得到确切的解决方案。

我有一个要求,比如电话联系人搜索, 在键盘包含

1-nothing
2-ABC
3-DEF
4-GHI
..
. 

现在我按下 23 个按钮然后搜索如下所示

AD , AE , AF , BD , BE , BF , CD , CE , CF

在同样的场景下,我按 234 然后

ADG , ADH , ADI , AEG , AEH , AEI , AFG , AFH , AFI , BDG , BDH , BDI ..........

【问题讨论】:

  • 这里不是您可以发布“要求”的地方。如果您需要一些帮助,请发布您的代码。
  • 到目前为止,您确实需要展示您的工作。无论如何尝试其他方法。将每个联系人姓名转换为其对应的数字序列。那么,算法对您来说应该会变得更加清晰。
  • 我尝试了多个场景,但我得到了整个字母组合,而不是像上面那样

标签: java android search contacts


【解决方案1】:

我建议在这里使用正则表达式。如果您按 234,那么您可以构造正则表达式 ^[ABC][DEF][GHI](如果您只想从字符串的开头匹配,则使用 ^ 可选)。您可能还需要确保使用不区分大小写的匹配。

您也可以在 Android 中执行此操作,请参阅 http://developer.android.com/reference/java/lang/String.html#matches(java.lang.String)

(编辑:@JasonC 首先将名称转换为数字的答案也是一个不错的选择)。

【讨论】:

    【解决方案2】:

    如果您将每个联系人姓名转换为其对应的数字序列,搜索将更加直接,您不必担心创建字母组合。

    Bob => 262
    John => 5646
    Steve => 78373
    Show => 7469
    Your => 9687
    Work => 9675
    Please => 753273
    

    祝你好运。

    【讨论】:

    • 感谢它对我来说工作正常。非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    • 2016-12-06
    • 1970-01-01
    • 2015-09-06
    • 1970-01-01
    • 2019-12-21
    相关资源
    最近更新 更多