Split String

public class Solution {
    /*
     * @param : a string to be split
     * @return: all possible split string array
     */
    public List<List<String>> splitString(String s) {
        List<List<String>> result = new ArrayList<>();
        helper(s, 0, new ArrayList<>(), result);
        return result;
    }
    
    private void helper(String s, int index, List<String> current, List<List<String>> result) {
        if (index == s.length()) {
            result.add(new ArrayList<>(current));
            return;
        }
        
        // Option 1
        current.add(String.valueOf(s.charAt(index)));
        helper(s, index + 1, current, result);
        current.remove(current.size() - 1);
        
        // Option 2
        if (index < s.length() - 1) {
            current.add(s.substring(index, index + 2));
            helper(s, index + 2, current, result);
            current.remove(current.size() - 1);
        }
    }
}

最后更新于

这有帮助吗?