[关闭]
@chyoo1991 2015-09-05T14:17:02.000000Z 字数 486 阅读 1212

一道Java的字符串小题

coding


/**
* 输出字符串中的所有重复子串:
* 例如:abcab
* 输出: a, b, ab
*/

仔细想想,这题并不难,采用笨方法做的话。但是要想写出能运行,没有Bug的代码,还是需要很好的基础的。恰好我这方面还需要认真锻炼。

  1. import java.util.Set;
  2. import java.util.HashSet;
  3. public static Set<String> getAllRepeatSubString(String s){
  4. if(s == null || s.length() == 0) return null;
  5. int len = s.length();
  6. Set<String> subSet = new HashSet<>():
  7. for(int i = 1; i <= len / 2; i++) {
  8. // i 是子字符串的长度,最大长度为 len / 2
  9. for(int j = 0; j + i <= len; j++) {
  10. String flagStr = s.substring(j, j + i);
  11. if(s.substring(j + i).contains(flagStr))
  12. subSet.add(flagStr);
  13. }
  14. }
  15. return subSet;
  16. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注