LintCode之字符串置换

来源:互联网 发布:vb编程入门书籍 编辑:程序博客网 时间:2024/06/05 21:58

给定两个字符串,请设计一个方法来判定其中一个字符串是否为另一个字符串的置换。

置换的意思是,通过改变顺序可以使得两个字符串相等。
“abc” 为 “cba” 的置换。
“aabc” 不是 “abcc” 的置换。

public boolean stringPermutation(String A, String B) {        List<String> listA = Arrays.asList(A.split(""));        List<String> listAA = new ArrayList<>();        for (int i = 0; i < listA.size(); i++) {            listAA.add(listA.get(i));        }        List<String> listB = Arrays.asList(B.split(""));        List<String> listBB = new ArrayList<>();        for (int i = 0; i < listB.size(); i++) {            listBB.add(listB.get(i));        }        if (listAA.size()==listBB.size()) {            if (listAA.size() > 1) {                for (int i = 0; i < listAA.size(); i++) {                    for (int j = 0; j < listBB.size(); j++) {                        if (listAA.get(i).equals(listBB.get(j))) {                            listAA.remove(i);                            i--;                            listBB.remove(j);                            j--;                            break;                        } else {                            continue;                        }                    }                }            } else {                return true;            }           } else {            return false;        }        String aa = "";        for (String string : listAA) {            aa = string;        }        String bb = "";        for (String string : listBB) {            bb= string;        }        if (listAA.size()==listBB.size()&&aa.equals(bb)) {            return true;        } else {            return false;        }