我遇到了一个问题陈述,找到给定的两个子字符串之间的所有常见子字符串,这样在每种情况下都必须打印最长的子字符串.问题陈述如下:
编写程序以查找两个给定字符串之间的公共子字符串.但是,不要包含较长公共子字符串中包含的子字符串.
例如,给定的输入串
eatsleepnightxyz并eatsleepabcxyz,结果应该是:
eatsleep(由于eatsleepnightxyzeatsleepabcxyz)xyz(由于)eatsleepnightxyzeatsleepabcxyza(由于)eatsleepnightxyzeatsleepabcxyzt(由于)eatsleepnightxyzeatsleepabcxyz但是,结果集应不包括
e从 ,因为这两个s的已经包含在上面提到的.你也应该包括,,等,因为这些也都涵盖.eatsleepnightxyzeatsleepabcxyzeeatsleepeaeatatseatsleep在这里,您不必使用String实用程序方法,如:contains,indexOf,StringTokenizer,split和replace.
我的算法如下:我从蛮力开始,当我提高基本理解时,将切换到更优化的解决方案.
For String S1:
Find all the substrings of S1 of all the lengths
While doing so: Check if it is also …Run Code Online (Sandbox Code Playgroud)