在逆向计划中是平等的

时间:2015-04-22 13:01:16

标签: java arrays equals

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

示例:

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

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

输出: True

示例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; 
    }

}

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

2 个答案:

答案 0 :(得分:9)

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

相反,您希望从1的结尾处获得单个循环和索引。

>>> from collections import Counter
>>> c = Counter("Hello")
>>> c.most_common()

在进入此循环之前,你应该检查两个数组的长度是否相同。

答案 1 :(得分:0)

你应该只使用一个带索引的循环,从1开始。

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