查找字符串中最长重复序列的 Java 程序

2025年1月8日 | 阅读需时 2 分钟

在此程序中,我们需要找到在原始字符串中重复出现一次以上的子字符串。

AbDFAAbdfh

在上面的字符串中,子字符串bdf是重复出现两次的最长序列。

程序的算法如下。

算法

main()

  • 步骤 1: 开始
  • 步骤2: 定义字符串str = "acbdfghybdf"
  • 步骤3: 设置String lrs = " "
  • 步骤4: 计算长度。
  • 步骤5: 设置i =0。重复步骤6到步骤10,直到 i<n。
  • 步骤6: 设置j =i+1。重复步骤7到步骤9,直到 j<n。
  • 步骤7: 调用String x中的lcp()。
  • 步骤8: if(x.length()>lrs.length()) then lrs =x
  • 步骤9: j =j + 1
  • 步骤10: i =i +1
  • 步骤11: 打印lrs。
  • 步骤 12:结束

lcp(String s, String t)

  • 步骤 1: 开始
  • 步骤2: 设置n = Math.min(s.length(), t.length())
  • 步骤3: 设置i =0。重复步骤4到步骤5,直到 i<n
  • 步骤4: if(s.charAt(i) != t.charAt(i)) then 返回 s.substring(0, i)
  • 步骤5: i= i+1
  • 步骤6: 返回 s.substring(0,n)
  • 步骤7: 结束

程序

输出

Longest repeating sequence: bdf
下一个主题Java 程序