问题已解决!谢谢
这是我在这个论坛上的第一个问题。我没有明白这里有什么问题。
JAVA8:我正在尝试比较字符串数组中位置X的对象是否与位置x-1或x + 1(至少一个)中的对象相同。 必须解决阵列中所有位置的这种情况。例如,给我们AABCBC作为输入,它必须为false,因为BCB不满足我们的条件,但是作为输出,它显示ok。
//b is String[] of chars --> F.E.:["B","B","A","B"]
int len= b.length;
boolean l_r=true;
for(int i=0;i<len;i++){
boolean left=false;
boolean right=false;
if(i+1<len ){ if (b[i].equals(b[i+1])){ right=true;}}
if(i-1>-1 ){ if (b[i].equals(b[i-1])){ left=true;}}
if(left==false && right==false){l_r=false; break;}
}
if(l_r==true){rta="YES";}
if(l_r==false){rta="NO";}
答案 0 :(得分:0)
我假设您的问题是:字符串数组中位置X的对象至少应与位置(X-1)或位置(X + 1)(即上一个或下一个位置)中的对象匹配。如果数组中的所有位置都满足此条件,则返回true;否则返回false。
int len = b.length;
boolean l_r=true;
for(int i=0;i<len;i++)
{
boolean left=false;
boolean right=false;
if(i+1<len ){if(b[i].equals(b[i+1])){ right=true;}}
if(i-1>-1 ){if(b[i].equals(b[i-1])){ left=true;}}
if(left==false && right==false){l_r=false; break;}
}
if(l_r==true)
System.out.println("YES");
if(l_r==false)
System.out.println("NO");
只需清理一下代码,其他所有内容(包括逻辑)都保持不变。此代码返回正确的答案。