2024-04-04
4月4日求助
原题目背景:小明想和朋友对比双方收藏夹的网站。
现在有A、B两组字符串
其中每个字符串都以英文点号分割,如:www.baidu.com
请于A组中找到B组中不包含的字符串。
并且考虑下面一种情况:A中字符串包含B中字符串,也算匹配成功
如:A中的www.baidu.com包含B中的www.baidu
包含的部分需要以点号分割,并且完全匹配
单个字符串可能比较长,请尽量在考虑性能的情况下完成扫描匹配。
样例1:
A中含有字符串:baidu.com、zz.xxx.baidu.cn、baidu.net.un
B中含有字符串:baidu.com、zz.xxx.baitu、baidu.net
那么A匹配上B的字符串为 baidu.com,因为完全匹配、以及baidu.net.un,因为它有一部分前缀和B中字符串baidu.net完全匹配
思路一:把B的字符串全装入Hash、遍历A的字符串key,看是否能直接匹配,不能,则遍历B字符串,看是否有B字符串为A字符串的前缀。时间复杂度高
思路二:当不能直接匹配时,从后往前切分A的字符串,每切分一次就再次使用hash的contains进行完全匹配。仍然不能通过,因为A中有个别字符串非常长,但B中没有该串,需要做大量无用的切分。
思路三:前缀树、KMP,时间不够了,也不知道能不能行。
有没有朋友能帮帮忙,集思广益一下,撕不出来了。
9
0
分享
操作
评论
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
