给定一个字符串和字符串数组,找出数组中字符串的最长后缀。
例如
字符串 =google.com.tr
数组 =tr, nic.tr, gov.nic.tr, org.tr, com.tr
返回com.tr
我曾尝试使用带有特定比较器的二进制搜索,但失败了。
C代码将受到欢迎。
编辑:
我应该说我正在寻找一个解决方案,我可以在准备步骤中做尽可能多的工作(当我只有一组后缀,并且我可以以各种可能的方式对其进行排序时,围绕它构建任何数据结构等等),并且对于给定的字符串,尽可能快地在这个数组中找到它的后缀。我也知道我可以从这个数组中构建一个 trie,这可能会给我最好的性能,但是我非常懒惰,并且在纠结的企业代码中保持一个原始 C 中的 trie 一点也不好玩。所以一些类似 binsearch 的方法将非常受欢迎。