abc로 만들수 있는 문자의 조합을 구하여라
1 2 3 4 5 6 | @Test void solve() { String str = "abc"; assertThat(new StringPermutation().solve(str)) .containsExactlyInAnyOrder("abc", "acb", "bac", "bca", "cab", "cba"); } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | public List<String> solve(String str) { if (str == null) { return null; } return recursive(str, new boolean[str.length()], "", new ArrayList<>()); } private List<String> recursive(String str, boolean[] visited, String cur, ArrayList<String> result) { if (cur.length() == str.length()) { result.add(cur); return result; } for (int i = 0; i < str.length(); i++) { if (visited[i]) { continue; } visited[i] = true; recursive(str, visited, cur + str.charAt(i), result); visited[i] = false; } return result; } | cs |
'알고리즘' 카테고리의 다른 글
문자열 내 p와 y의 개수 (0) | 2020.09.09 |
---|---|
두 정수 사이의 합 (0) | 2020.09.09 |
Reverse Linked List (0) | 2020.08.26 |
Char length count (0) | 2020.08.25 |
Valid Anagram (0) | 2020.08.25 |