本帖最后由 曹宇 于 2013-4-7 02:47 编辑
- /*
- 需求:获取两个字符串中相同的最大的子串。
- */
- class StringTest4
- {
- public static void main(String[] args)
- {
- Run r = new Run("zfebgdefiroytpqaqzc","acbgdeftklj");
- System.out.println(r.getStr());
- }
- }
- class CanShuFeiFaException extends RuntimeException
- {
- CanShuFeiFaException(String message)
- {
- super(message);
- }
- }
- class Run
- {
- private String s1;
- private String s2;
- Run(String s1,String s2)
- {
- this.s1=s1;this.s2=s2;
- }
-
- if (s1.length()==0||s2.length()==0) //报了8条错误,就这一句话,我不知道到底是哪里不行了。
- {
- throw new CanShuFeiFaException("参数异常");
- }
- public String getStr()
- {
- String max,min;
- if(s1.length()>=s2.length())
- {
- min=s2;
- max=s1;
- }
- else
- {
- min=s1;
- max=s2;
- }
- int cut=0;
- int x,z;
- int leng=min.length();
- for( ;leng>0;leng--,cut++)
- {
-
- for(x=0,z=leng-1;x<=cut;x++,z++)
- {
-
-
- if ( max.contains(min.substring(x,z+1)) )
- {
- return min.substring(x,z+1);
- }
- }
- }
- return "No find";
-
-
- }
- }
复制代码
为什么呢?
就看33行就行了。
还望高手解答,实在是十分的疑惑啊。完全搞不懂了。。
谢谢了!
|