比较数组中的位置与上一个/下一个位置

时间:2019-05-29 20:50:49

标签: java

问题已解决!谢谢

这是我在这个论坛上的第一个问题。我没有明白这里有什么问题。

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";}

1 个答案:

答案 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");

只需清理一下代码,其他所有内容(包括逻辑)都保持不变。此代码返回正确的答案。