public class MyClass{
public static boolean hasPalindrome(int[] arr, int len){
int maxEven = 0, maxOdd = 0;
for(int i = len/2; i<arr.length-len/2; i++){
maxOdd = Math.max(maxOdd, polFromIndexOdd(arr, i));
maxEven = Math.max(maxEven, polFromIndexEven(arr, i));
}
return Math.max(maxEven, maxOdd);
}
public static int polFromIndexEven(int[] arr, int start){
int i = start, j = start+1, count = 1;
if(start<0 || start >= arr.length-1)
return 0;
while(i>=0 && j < arr.length && arr[i]==arr[j]){
count += 2;
i--;
j++;
}
return count;
}
public static int polFromIndexOdd(int[] arr, int start){
int i = start-1, j = start+1, count = 1;
if(start<0 || start >= arr.length)
return 0;
while(i>=0 && j < arr.length && arr[i]==arr[j]){
count += 2;
i--;
j++;
}
return count;
}
}
Comments