题解 | #拆分词句#

拆分词句

https://www.nowcoder.com/practice/5f3b7bf611764c8ba7868f3ed40d6b2c

从前往后通过int i遍历遍历, 看看前i个是否能分割后被字典找到, 假如可以就设置i下标的boolean值为true, 这个boolean值可以被后面的遍历所利用, 相当于记录下了之前的结果.
import java.util.Set;

public class Solution {
    public boolean wordBreak(String s, Set<String> dict) {
        if (dict.isEmpty()) {
            return false;
        }

        //true表示前index个单词都是可以被分割后被字典查到的
        boolean[] canBreak = new boolean[s.length() + 1];
        canBreak[0] = true;

        for (int i = 1; i < s.length() + 1; i++) {
            for (int j = i - 1; j >= 0; j--) {
                //前j个可分割, 然后j~i可找到, 所以i可分割
                if (canBreak[j] && dict.contains(s.substring(j, i))) {
                    canBreak[i] = true;
                    break;
                }
            }
        }
        return canBreak[s.length()];
    }
}



全部评论

相关推荐

不愿透露姓名的神秘牛友
2025-11-25 00:23
牛客28967172...:这个项目不行,学生管理系统这个方向你做出花也没用,实在不行找些开源项目做做。 而且一个比赛奖项都没有,acm,icpc,蓝桥杯,实在不行数学建模或者你校内一些程序设计比赛都行。 对于没实习找实习的,奖项(国奖/省奖)>软著专利>开源项目(最好高star)>校内真实项目(加一些计算机社团,百分百有真实项目)
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务