Java Mod在Rabin-Karp算法中的应用

Java Mod在Rabin-Karp算法中的应用,java,substring,contains,rabin-karp,Java,Substring,Contains,Rabin Karp,我正在学习子串算法,特别是Rabin-Karp子串匹配方法。我看到,为了比较较长的子串,我们通常取模 该K的特点是什么,以便更有效地实施 为什么我们不能比较字符串mod K以及字符串div K对于某些K,为什么我们必须在发生冲突时比较整个字符串?比较div和mod结果不是比比较字符串更好吗 如何修改用于字符串匹配的Rabin-Karp算法?现在,我已经实现了一个方法,其中每个字符串都转换为它的ASCII值并存储在一个字符数组中。有更好的方法吗 我了解Inetegr.parseInt()的含义,并

我正在学习子串算法,特别是Rabin-Karp子串匹配方法。我看到,为了比较较长的子串,我们通常取模

  • 该K的特点是什么,以便更有效地实施
  • 为什么我们不能比较字符串mod K以及字符串div K对于某些K,为什么我们必须在发生冲突时比较整个字符串?比较div和mod结果不是比比较字符串更好吗
  • 如何修改用于字符串匹配的Rabin-Karp算法?现在,我已经实现了一个方法,其中每个字符串都转换为它的ASCII值并存储在一个字符数组中。有更好的方法吗
  • 我了解Inetegr.parseInt()的含义,并了解Java的字符串.Contains()。在实现此功能时使用了什么算法
    谢谢大家!

    关于第4点,
    String.contains
    不接受正则表达式,只需要搜索一个文本字符串,它使用简单、暴力的线性搜索进行搜索。源代码随JDK一起提供。对不起!意思是询问匹配项和包含项。@DavidConrad:为什么不实现此算法?:o它不是比蛮力更好吗?像Rabin Karp、Aho Corasick、Boyer Moore和Knuth Morris Pratt这样的算法都有初始化开销。当您可以执行一次设置,然后运行许多搜索时,它们非常有用,但对于像
    “algorithm.”包含(“go”)
    这样的简单情况,启动时间将完全淹没任何好处。因此,它们很少作为标准库中的字符串搜索算法实现;相反,它们由专业图书馆管理。我相信您可以找到实现所有这些功能的Java库。