Как сократить срок программы? - PullRequest
0 голосов
/ 27 апреля 2020

Превышено ограничение по времени для следующего кода. Это займет 6 секунд, чтобы быть выполненным. Как я могу сократить время выполнения? Вопрос для следующей программы: https://www.codechef.com/problems/SUBMATCH

import java.util.Scanner;
public class Sub_Match
{
    static String z = "";
    static int length = 0;
    static String check;
    static int max = 0;
    public static void main(String[] args)
    {
        Scanner scan = new Scanner(System.in);
        Sub_Match ob = new Sub_Match();
        int t = scan.nextInt();
        int ar[] = new int[t];
        for(int i=0;i<t;i++)
        {
            check = scan.next();
            int n = scan.nextInt();
            String arr[] = new String[n];
            for(int j=0;j<n;j++)
            {
                arr[j] = scan.next();
                length = length + arr[j].length();
            }
            ob.check(arr, "");
            ar[i] = max;
            max = 0;
            z = "";
            length = 0;
        }
        for(int i=0;i<t;i++)
            System.out.println(ar[i]);
    }
    static void check(String arr[], String y)
    {
        if(check.contains(y) && y.length()<=length)
        {
            if(y.length()>max)
                max = y.length();
            for(int i=0;i<arr.length;i++)
            {
                y = y + arr[i];
                check(arr, y);
                y = y.substring(0, y.length()-arr[i].length());
            }
        }
    }
}
...