Java 我正在为CodeChef编写代码。但是,有可能对其进行更多优化吗?

Java 我正在为CodeChef编写代码。但是,有可能对其进行更多优化吗?,java,optimization,Java,Optimization,我正在为CodeChef编写代码。但是获得误差TLE(2.10000)是否有可能对其进行更多优化 问题链接: 代码: /* package codechef; // don't place package name! */ import java.util.*; import java.lang.*; import java.io.*; /* Name of the class has to be "Main" only if the class is public. */ class C

我正在为CodeChef编写代码。但是获得误差TLE(2.10000)是否有可能对其进行更多优化

问题链接:

代码:

/* package codechef; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
class Codechef
{
    public static void main (String[] args) throws java.lang.Exception
    {
         Scanner ss = new Scanner(System.in);
         int  T = ss.nextInt();

             for(int k=0;k<T;k++){

                         int counter=0;
                         int N=ss.nextInt();
                         String S=ss.next();
                         char c=ss.next().charAt(0);
                         int sLengthOne=S.lastIndexOf(c);
                         int sLengthTwo=S.length();
                         if(S.length()==N){
                                 for (int i = 0; i <= sLengthOne; i++) {
                                    for (int j = 1; j <= sLengthTwo-i; j++) {
                                        if(S.substring(i,i+j).indexOf(c)!=-1){
                                            counter++;
                                        }
                                    }
                                }
                         System.out.println(counter);
                         }
         }

    }
}
/*包编解码器;//不要放置包名*/
导入java.util.*;
导入java.lang.*;
导入java.io.*;
/*只有当类是公共的时,类的名称才必须是“Main”*/
类Codechef
{
公共静态void main(字符串[]args)引发java.lang.Exception
{
扫描仪ss=新扫描仪(System.in);
int T=ss.nextInt();

对于(intk=0;k您当前的代码以O(n*n)运行,您需要将其设为O(n)。这样做的目的只是检查字母所在的位置,并使用一点数学计算包含该字母的子字符串的数量。您还需要考虑一种避免计算重叠的策略。

当您尝试为给定字符串生成所有可能的子字符串时,会增加大量处理时间请告诉我您的代码。相反,请尝试通过计算子字符串而不是实际生成子字符串来从数学上解决问题,然后检查需要查找的字母索引是否存在于该子字符串范围内。

优化是它工作时必须做的事,您希望改进它。您首先需要做的是o do,正在修复它。你隐藏异常有什么特别的原因吗?你问的是try-and-catch,对吗?为什么我使用了?除非我使用try-and-catch,否则它不允许我提交代码不知道为什么,我问你为什么允许代码崩溃,而你从来没有注意到它崩溃,更不用说whysorr了是的,但我没有明白你的意思是的,但没有办法,我有计算子串的公式…N(N+1)/2,但不知道如何用数学方法计算字符的存在it@V_for_Vj考虑给定字符串的索引,有多少子字符串包含该索引