@chyoo1991
2015-09-05T14:17:02.000000Z
字数 486
阅读 1212
coding
/**
* 输出字符串中的所有重复子串:
* 例如:abcab
* 输出: a, b, ab
*/
仔细想想,这题并不难,采用笨方法做的话。但是要想写出能运行,没有Bug的代码,还是需要很好的基础的。恰好我这方面还需要认真锻炼。
import java.util.Set;
import java.util.HashSet;
public static Set<String> getAllRepeatSubString(String s){
if(s == null || s.length() == 0) return null;
int len = s.length();
Set<String> subSet = new HashSet<>():
for(int i = 1; i <= len / 2; i++) {
// i 是子字符串的长度,最大长度为 len / 2
for(int j = 0; j + i <= len; j++) {
String flagStr = s.substring(j, j + i);
if(s.substring(j + i).contains(flagStr))
subSet.add(flagStr);
}
}
return subSet;
}