各位朋友,小弟最近灵感一现,回忆起以前上学的时候未解决的问题:
例如给个字符串(字符串长度和内容不限) ,假定是"abcabbcabc",那么重复的字符串有:a,b,c,ab,bc,abc,bca,bcab
希望大家给出完整的算法实现,不要伪代码,最好能带关键地方的注释
另注:希望大家用JAVA或者Python或者Javascript实现,万不得已用C也行,其他的语言就不用了(小弟不懂),谢谢大家
求出一个字符串里所有的重复字符串
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
iteye_8614 2011-03-19 17:15关注注释没有,你自己看看。。。
[code="java"]
package cn.com;import java.util.HashSet;
import java.util.Set;public class Test {
public static void main(String[] args) { String str = "abcabbcabc"; Set<String> set = new HashSet<String>(); Set<String> newstr = new HashSet<String>(); int len = str.length(); for (int i = 0; i < len; i++) { set.add("" + str.charAt(i)); } int maxlen = len % 2 == 0 ? len / 2 : (len - 1) / 2; for (int i = 0; i < maxlen; i++) { for (int j = i+1 ; j < i+1+maxlen; j++) { newstr.add(str.substring(i, j)); } } for (String strs : newstr) { String strpat = str.replace(strs, ""); if(strpat.length()<=(str.length()-strs.length()*2)){ System.out.println(strs); } } }}
[/code]本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报