在逆向计划中是平等的

edw*_*ire -10 java arrays equals

该程序将查看两个数组中的元素,然后它将检查第一个数组是否与第二个数组相反.如果是,它将返回true,如果不是,则返回false.

例:

Array1 = {1,2,3,4,5}

Array2 = {5,4,3,2,1}

输出:

示例2: Array1 = {1,2,3,4,5}

Array2 = {1,2,3,4,5}

输出:错误

public class Test
{
    public static void main(String [] args)
    {
        int [] w = {1,2,3,4,5};
        int [] e = {5,4,3,2,1};

        System.out.println(isEqualInReverse(w,e));
    }
    public static boolean isEqualInReverse(int [  ] a, int [  ] b){
        for (int i = 0; i < a.length; i++)
        {
        for(int p = b.length - 1; p >= 0; p--)
        if (a[i] != b[p])
           return false;   
        }
    return true; 
    }

}
Run Code Online (Sandbox Code Playgroud)

我试图实现这个但是没有从我的程序中获得预期的结果.我做错了什么?

Tim*_*m B 9

您正在嵌套两个for循环,因此您将第一个循环中的每个元素与第二个循环中的每个元素进行比较.

相反,你想要从1的末尾开始一个循环和索引.

for (int i=0;i<b.length;i++) {
   if (b[i] != a[a.length-1-i]) {
      return false;
   }
}
return true;
Run Code Online (Sandbox Code Playgroud)

实际上你应该在进入这个循环之前检查两个数组的长度是否相同.

  • 应该是`a.length - 1 - i`. (2认同)