这个越看越像 老毕视频里讲的那个求最大相同字串的例子
改一下条件,求其最多有俩个相同字串的情况
String[] ss = {"0","01","02","03","04","05","06","07","08","09");
private static String getString(String s){
for(int x=0;x<2; x++){
for(int start=0,end=2-x;end != s.length()+1; start++,end++){
String s1 = s.substring(start,end);
//此处代码去查表实现,并带上条件,排除以上不可以实现的地方
for(String s : ss){
if(s==s1){
s2 = s.substring(end-1,s.length());
getString(s2);
}
}
int i = Integer.parseInt(s1);
if(i>= 27 || i<=99){
s2 = s.substring(end-1,s.length());
getString(s2);
}
}
}
}
当x=0时候,取的是一个字符串数字对应的编码,遇到 0 应将 之前的一位看做是一起的 字符串 ,这时取其字串重新 进行递归 运算
当x=1时候,取的是所有两个字符串数字对应的编码,由于此处编码形式只包含首字符串为1 或者为 2 的数,判断时应考虑全面,数值区间不在1--26之间的所有数值应该取其字串进行递归运算,总之好麻烦。
一个字符的子串中出现0,就得把0归结为上一个字串的内容,取剩余的后面的作为子串进行递归运算
两个字符的字串出现0开头的,或者 27 至 99 之间的所有数值 都需要取其 前一位开头的字串
数值尽量少些,尽量避免内存泄露 |