解题思路:

我用的是Java代码写的,但是超时了,看不了原因,我就是想写个题解,大佬都帮我看看,我估计是循环写的有问题,求大佬赐教。

写一个方法,将字符串拆分不同的子串,在在原字符串中分别查找是否包含子串,返回查询到的个数。

注意事项:
循环问题。
参考代码:


import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class test {
   public static void main(String[] args) {
       Scanner in = new Scanner(System.in);
       //HashSet<String> s=new HashSet<>();
       //s = new String[];
       int i = 0;
       List<Integer> a = new ArrayList<>();
       //in.nextLine();
       String s = null;
       while (true) {
           s = in.nextLine();
           if (s.equals("."))break;

           a.add(subStr(s));

       }

       for (Integer integer : a) {
           System.out.println(integer);
       }
   }

   private static int subStr(String string) {
       String s = null;
       int sum = 0, flag = 0;
       for (int j = 0; j < string.length()/2; j++) {
           for (int k = 1; k < string.length(); k++) {
               if (sum < flag) sum = flag;
               flag = 0;
               if (j >= k) {
                   k++;
                   continue;
               }

               s = string.substring(j, k);

               int i = 0;
               while (true) {
                   i = string.indexOf(s, i) + 1;
                   if (i == 0) break;
                   flag++;
               }
           }

       }
       return sum;
   }
}

可能是循环有问题。

点赞(0)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论