Permutation

public static ArrayList<String> permutation(String s) {
		boolean[] mark = new boolean[s.length()];
		return helper(s, mark, 0);
	}

	public static ArrayList<String> helper(String s, boolean mark[], int index) {
		ArrayList<String> res = new ArrayList<String>();
		if (index == s.length()) {
			res.add("");
			return res;
		}

		for (int i = 0; i < s.length(); i++) {
			if (mark[i])
				continue;
			mark[i] = true;
			for (String str : helper(s, mark, index + 1)) {
				str = s.charAt(i) + str;
				res.add(str);
			}
			mark[i] = false;
		}
		return res;
	}


你可能感兴趣的:(Permutation)