1
Check the complete problem here厨师和彩虹阵列(检查数组是回文阵列)
厨师喜欢所有阵列相等。但他比其他人更喜欢一些阵列。特别是他喜欢彩虹阵列。
数组是彩虹如果它具有以下结构:
首先A1元素等于1 接着A2元素等于2. 接着A3元素等于3. 接着A4元素等于4. 接着A5元件等于5. 接着A6元素等于6. 接着A7元素等于7. 接着A6元素等于6. 接着A5元素等于5. 接着A4元素等于4. 接着A3元素等于3. 接着A2元素等于2. 下一步a1元素等于1. ai可以是任何非零的正整数。 数组中没有其他元素。
帮助厨师找出给定的数组是否是彩虹数组。 这是我的代码,在NetBeans上完美运行,但在CodeChef上说错了。
import java.util.Scanner;
class RAINBOWA {
public static void main(String args[])
{
Scanner sc = new Scanner(System.in);
int testCases, noOfElements,i,j,k;
boolean t=false;
testCases = sc.nextInt();
int a [][] = new int[testCases][1000];
String opString[];
opString = new String[testCases];
for(i=0; i<testCases; i++)
{
noOfElements = sc.nextInt();
for(j=0; j<noOfElements; j++)
{
a[i][j] = sc.nextInt();
}
for(j=0,k=(noOfElements-1); j<(noOfElements/2); j++,k--)
{
if(((noOfElements%2)==0) && a[i][j]==a[i][k])
{
t=true;
}
else if((noOfElements%2)!=0 && a[i][j]==a[i][k])
{
if(a[i][((int)noOfElements/2)-1]+1==a[i][(int)noOfElements/2])
{
t=true;
}
}
else
{
t=false;
break;
}
}
if(t==true)
{
opString[i]="yes";
t=false;
}
else
opString[i]="no";
}
for(i=0; i<testCases; i++)
{
System.out.println(opString[i]);
}
}
}