|
|
- import org.junit.Test;
- import java.util.LinkedList;
- import java.util.List;
- public class MainTest {
- List<String> res = new LinkedList<>();
- @Test
- public void Test() {
- String s = "a{b,c}{d,e}";
- findAllCombinations(s);
- System.out.println(res);
- }
- public void findAllCombinations(String s) {
- String[] ss = s.split("}\\{");
- StringBuilder sb = new StringBuilder();
- sb.append(ss[0].charAt(0));
- dfs(sb, ss, 0, 0);
- }
- public void dfs(StringBuilder sb, String[] ss, int arrIndex, int charIndex) {
- if (sb.length() - 1 == ss.length) {
- res.add(sb.toString());
- return;
- }
- int len = ss[arrIndex].length();
- for (int j = charIndex; j < len; j++) {
- if (arrIndex == 0 && j < 2) continue;
- if (ss[arrIndex].charAt(j) >= 'a' && ss[arrIndex].charAt(j) <= 'z') {
- sb.append(ss[arrIndex].charAt(j));
- dfs(sb, ss, arrIndex + 1, 0);
- sb.setLength((sb.length() - 1));
- }
- }
- }
- }
复制代码 |
|