【发布时间】:2017-08-26 17:43:31
【问题描述】:
Check the complete problem here
Chef 对所有的阵列都一视同仁。但他比其他的更喜欢一些阵列。他特别喜欢彩虹阵列。
如果数组具有以下结构,则该数组是 Rainbow:
前 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 可以是任何非零正整数。 数组中没有其他元素。
帮助 Chef 找出给定的数组是否是 Rainbow Array。 这是我的代码,在 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]);
}
}
}
【问题讨论】:
标签: java arrays palindrome