注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号
x
代码如下- class Solution {
-
- Set<String> dic;
- public List<String> wordBreak(String s, List<String> wordDict) {
- List<String> res = new LinkedList<>();
- dic = new HashSet<>();
- for(String w : wordDict){
- dic.add(w);
- }
- StringBuilder sb = new StringBuilder();
- helper(s, 0, res, sb);
- return res;
- }
-
- public void helper(String s, int index, List<String> res, StringBuilder sb){
- if(index == s.length()){
- res.add(sb.toString().trim());
- return;
- }
- for(int i = index; i <= s.length() - 1; i++){
- String curr = s.substring(index, i + 1);
- if(dic.contains(curr)){
-
- sb.append(curr);
- sb.append(" ");
- helper(s, i+1, res, sb);
- sb.setLength(sb.length() - curr.length() - 1);
- }
- }
- }
- }
复制代码 居然93%通过 leetcode
但完全不知道怎么分析时间复杂度? 据说是 n! ???? 那么时间复杂度呢?
|