* 思路: * 从头遍历_前端遍历数组出来的字符串怎么和其">
赞
踩
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击人工智能教程
- package live.every.day.Programming;
-
- import java.util.HashSet;
- import java.util.Set;
-
- /**
- * 比较两个字符串数组是否相等,数组元素是形如"aa=xx"的字符串,并且我们认为"aa=xx"和"xx=aa"是相等的。
- * <p>
- * 思路:
- * 从头遍历第一个数组,在第二个数组中查找与其内容相同的元素,若找到则做连线标记。
- * 检查标记,如果两个数组中所有元素都被标记了,则返回true;否则返回false。
- *
- * @author Created by LiveEveryDay
- */
-
- public class CompareKeyValuePairArray {
-
- public static void main(String[] args) {
- String[] arr1 = {"aa=ww", "bb=xx", "cc=yy", "dd=zz", "dd=zz", "xx=bb"};
- String[] arr2 = {"zz=dd", "ww=aa", "yy=cc", "bb=xx", "dd=zz"};
- System.out.printf("Is equal: %s", isArrayEqual(arr1, arr2));
- }
-
- private static boolean isElementEqual(String e1, String e2) {
- if (e1.contentEquals(e2)) {
- return true;
- }
- if (e1.contentEquals(new StringBuilder(e2).reverse())) {
- return true;
- }
- return false;
- }
-
- public static boolean isArrayEqual(String[] arr1, String[] arr2) {
- if (arr1 == null || arr2 == null) {
- return false;
- }
- Set<Integer> set1 = new HashSet<>();
- Set<Integer> set2 = new HashSet<>();
- for (int i = 0; i < arr1.length; i++) {
- for (int j = 0; j < arr2.length; j++) {
- if (isElementEqual(arr1[i], arr2[j])) {
- set1.add(i);
- set2.add(j);
- }
- }
- }
- if (set1.size() == arr1.length && set2.size() == arr2.length) {
- return true;
- } else {
- return false;
- }
- }
-
- }
-
- // Output:
- /*
- Is equal: true
- */
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。