object LongestRepeatingSubstring {
// Function to find the longest common prefix between two strings
def longestCommonPrefix(sub1: String, sub2: String): String = {
val minLen = math.min(sub1.length, sub2.length)
for (i <- 0 until minLen) {
if (sub1(i) != sub2(i)) {
return sub1.substring(0, i)
}
}
sub1.substring(0, minLen)
}
// Function to find the longest repeating substring
def longestRepeatingSubstring(s: String): String = {
var lrs = ""
val size = s.length
for (i <- 0 until size) {
for (j <- i + 1 until size) {
val lcp = longestCommonPrefix(s.substring(i), s.substring(j))
if (lcp.length > lrs.length) {
lrs = lcp
}
}
}
lrs
}
def main(args: Array[String]): Unit = {
val s = "javascriptpythonphpjavacdartcppjavacsharpscala"
println(longestRepeatingSubstring(s))
}
}
/*
run:
pjavac
*/