【发布时间】:2018-10-04 23:26:55
【问题描述】:
我有 2 串模式 a.{var1}.{var2} 和 b.{var1}.{var2}。
如果第一个字符串中的var1 与第二个字符串中的var1 相同,并且第一个字符串中的var2 与第二个字符串中的var2 相同,则两个字符串匹配。
变量可以是任何顺序,例如a.{var1}.{var2} 和b.{var2}.{var1}。
如何高效匹配两个字符串?
示例 1:
String pattern1 = "1.{var1}";
String pattern2 = "2.{var1}";
//Match True = (1.111,2.111)
//Match False = (1.121,2.111)
示例 2:
String pattern1 = "1.{var1}.{var2}";
String pattern2 = "2.{var1}.{var2}";
//Match True = (1.11.22,2.11.22)
//Match False = (1.11.22,2.111.22)
示例 3:
String pattern1 = "1.{var1}.{var2}";
String pattern2 = "2.{var2}.{var1}";
//Match True = (1.22.11,2.11.22)
//Match False = (1.11.22,2.111.22)
那么匹配这两个字符串的最佳方法是什么?
我想匹配这两个字符串以查找它们是否与提到的模式相关。
将此问题扩展到一组字符串,即 Set A 字符串必须与 Set B 中的字符串匹配。最后必须形成满足该匹配算法的字符串对。匹配 Set A 到 Set B 中的所有字符串时,模式将保持不变。
【问题讨论】:
-
您可能想要对字符串进行标记并比较各个标记。
-
这看起来很复杂,就像您正在尝试构建自己的某种正则表达式引擎一样。也许更多地解释为什么比赛发生的逻辑。
-
您是否要比较由小数分隔的数字?如 (5.9278.30) 5 是一组,9278 是另一组,30 是最后一组?
-
您在哪一部分遇到了问题?
-
我想对其进行优化,以将一个字符串列表与另一个字符串列表匹配,并且复杂度最低。
标签: java string algorithm data-structures