fun longestCommonPrefix(sub1: String, sub2: String): String {
val minLen = minOf(sub1.length, sub2.length)
for (i in 0 until minLen) {
if (sub1[i] != sub2[i]) {
return sub1.substring(0, i)
}
}
return sub1.substring(0, minLen)
}
fun longestRepeatingSubstring(s: String): String {
var lrs = ""
val size = s.length
for (i in 0 until size) {
for (j in i + 1 until size) {
val lcp = longestCommonPrefix(s.substring(i), s.substring(j))
if (lcp.length > lrs.length) {
lrs = lcp
}
}
}
return lrs
}
fun main() {
val s = "javascriptpythonphpjavacdartcppjavacsharpkotlin"
println(longestRepeatingSubstring(s))
}
/*
run:
pjavac
*/