Problem
Give a string, you can choose to split the string after one character or two adjacent characters, and make the string to be composed of only one character or two characters. Output all possible results.
Example
Given the string "123"
return [["1","2","3"]
,["12","3"]
,["1","23"]]
Solution
public class Solution {
/*
* @param : a string to be split
* @return: all possible split string array
*/
public List<List<String>> splitString(String s) {
// write your code here
List<List<String>> res = new ArrayList<>();
if (s == null) return res;
if (s.length() == 0) {
res.add(new ArrayList<String>());
return res;
}
dfs(s, 0, new ArrayList<String>(), res);
return res;
}
public void dfs(String s, int index, List<String> cur, List<List<String>> res) {
if (index >= s.length()) {
res.add(new ArrayList<String>(cur));
return;
}
int i = index;
while (i <= index+1 && i < s.length()) {
cur.add(s.substring(index, i+1));
dfs(s, i+1, cur, res);
cur.remove(cur.size()-1);
i++;
}
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。