Я сделал небольшую программу, которая проверяет, какой индекс нужно удалить, чтобы сделать его палиндромом. Поскольку в одном выполнении может быть много тестовых случаев, я вынужден использовать глубокое вложение для циклов. Я хочу знать, есть ли альтернативный способ петли вложенности для повышения производительности.Альтернатива вложенным петлям для повышения производительности кода?
Ниже мой код:
import java.util.*;
import java.io.*;
public class Testhis {
public static void main(String[] args) throws Exception {
Scanner sc=new Scanner(System.in);
//System.out.println("No. of testcases:");
int testcases=sc.nextInt();
String strin[]=new String[testcases];
for (int i=0;i<testcases;i++)
strin[i]=sc.next();
int res[]= checkPalindromeIndex(strin);
for(int i=0;i<res.length;i++)
System.out.println(res[i]);
}
private static int[] checkPalindromeIndex(String[] strin) {
int result[]=new int[strin.length];
a:
for(int i=0;i<strin.length;i++){
System.out.println("checking:::::"+strin[i]);
if(checkPalFlag(strin[i])){
result[i]=-1;
continue a;
}
else{
for(int j=0;j<strin[i].length();j++){
StringBuilder sb=new StringBuilder(strin[i]);
String teststr=sb.deleteCharAt(j).toString();
System.out.println("resulting string:"+teststr);
if(checkPalFlag(teststr)){
result[i]=j;
continue a;
}
}
}
}
return result;
}
private static boolean checkPalFlag(String string) {
boolean flag=false;int len=string.length();
for(int i=0;i<(len+1)/2;i++){
if(string.charAt(i)==string.charAt(len-(i+1))){
flag=true;
continue;
}
else{
flag=false;
break;
}
}
System.out.println("string "+string+" is a palindrome? :"+flag);
return flag;
}
}
Я голосующий, чтобы закрыть этот вопрос как не по теме, потому что этот вопрос принадлежит [Code Review] (http://codereview.stackexchange.com/). – Seelenvirtuose
Вы имеете в виду это недействительный вопрос? Я не хочу, чтобы мой код был пересмотрен. Я хочу, чтобы решение вопроса было задано не кодом, который нужно пересмотреть. Код - это всего лишь пример – rydz
Может быть, вам лучше объяснить, что вы подходите в письменном слове/псевдокоде, а не в действительном коде –