锁定老帖子 主题:一道简单的求最大相似字串的笔试题
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (5)
|
|
---|---|
作者 | 正文 |
发表时间:2012-03-05
KMP算法
|
|
返回顶楼 | |
发表时间:2012-03-05
最后修改:2012-03-05
gdfdghdkhjghkjljhhdr e r 把 . . . j
|
|
返回顶楼 | |
发表时间:2012-03-05
用正则表达式,是不是能方便一些?
|
|
返回顶楼 | |
发表时间:2012-03-05
icanfly 写道 KMP算法
关KMP鸟事 |
|
返回顶楼 | |
发表时间:2012-03-05
public static String GetLargePublicString(String A,String B) { String shortString = A.length() > B.length() ? B : A;//取较短者; String longString = A.length() > B.length() ? A : B;//取较长者; for (int i = shortString.length(); i > 0; i--)//长度递减 { for (int j = 0; j <= shortString.length() - i; j++)//位置递增 { if (longString.indexOf(shortString.substring(j,i)) != -1) { return shortString.substring(j, i); } } } return "empty"; } |
|
返回顶楼 | |
发表时间:2012-03-05
String s1=erdkhjghj; String s2=gdfdghdkhjghkjljhhdr; 我的思路是找出 s1 中所有的顺序的排列组合 例如 e er erd djh highj 等 然后 再和s2里面的 比较 s2 包含 排列组合 里的 长度最大的 子串 就是答案 所以 本题的难点 也就是 就 求 s1 的所有的子串的问题 至于怎么求 楼下 回答 :D |
|
返回顶楼 | |
发表时间:2012-03-06
cttnbcj 写道 icanfly 写道 KMP算法
关KMP鸟事 我觉得kmp匹配模式倒有点儿道理 |
|
返回顶楼 | |
发表时间:2012-03-06
sweat89 写道 public static String GetLargePublicString(String A,String B) { String shortString = A.length() > B.length() ? B : A;//取较短者; String longString = A.length() > B.length() ? A : B;//取较长者; for (int i = shortString.length(); i > 0; i--)//长度递减 { for (int j = 0; j <= shortString.length() - i; j++)//位置递增 { if (longString.indexOf(shortString.substring(j,i)) != -1) { return shortString.substring(j, i); } } } return "empty"; } 这个是错的。 请试一下这个测试用例。 String A = "12345"; String B = "223456789"; 返回的是“234”。 代码看起来就别扭,看第一眼就觉得有问题。 |
|
返回顶楼 | |
发表时间:2012-03-06
我也觉得公司是想考你KMP算法...
|
|
返回顶楼 | |
发表时间:2012-03-06
写个KMP算法的解法看看?
|
|
返回顶楼 | |