1087 brace expansion

https://leetcode.com/problems/brace-expansion/

็œ‹่ตทๆฅๅพˆๅ”ฌไบบไฝ†ๆ˜ฏไธ็ฎ—็‰นๅˆซ้šพ ๆˆ‘ๅฐฑๅ–œๆฌข่ฟ™็ง

class Solution {
    List<String> ans = new ArrayList<>();
    public String[] expand(String s) {
        char[] array = s.toCharArray();
        dfs(0, array, new StringBuilder());
        String[] res = new String[ans.size()];
        for (int i = 0; i < res.length; i++) {
            res[i] = ans.get(i);
        }
        Arrays.sort(res);
        return res;
    }
    private void dfs(int index, char[] array, StringBuilder sb) {
        if (index == array.length) {
            ans.add(sb.toString());
            return;
        }
        char ch = array[index];
        if (ch == ',') {
            dfs(index + 1, array, sb);
        } else if (ch == '{') {
            int end = index;
            while (array[end] != '}') end++;
            for (int i = index + 1; i < end; i++) {
                if (array[i] == ',') continue;
                sb.append(array[i]);
                dfs(end + 1, array, sb);
                sb.deleteCharAt(sb.length() - 1);
            }
        } else {
            sb.append(array[index]);
            dfs(index + 1, array, sb);
            sb.deleteCharAt(sb.length() - 1);
        }
    }
}

ๆœ‰็‚นๆ„ๆ€ -- ๆŸ้€ธ

Last updated