力扣-单词拆分

class Solution {

public boolean wordBreak(String s, List<String> wordDict) {

//目标:判断字符串s是否可以用wordDict中的单词组成(wordDict中的单词可以重复使用,也可以不全部用完)

//暴力法:

// s = 'leetcode'

//先试字典中的"leet" 检查leetcode是否以"leet"开头 去掉它 剩下子串是code 再递归去判断code能不能被拆分

return canBreak(s,wordDict);

}

//这个字符串s是否可以被成功拆分

public boolean canBreak(String s,List<String> wordDict){

if(s.isEmpty()){//空的也算

return true;

}

for(String word:wordDict){

if(s.startsWith(word)){

//如果是的 那么继续递归处理剩余字符串

if(canBreak(s.substring(word.length()),wordDict)){

return true;

}

}

}

return false;

}

}

相关推荐
罗西的思考14 小时前
机器人模型(WM / WAM / VLA)综合分析与对比:从「看」到「想」再到「做」
人工智能·算法·机器学习
Logic10115 小时前
C语言/数据动态规划题解:翻转一次子数组后的最大子数组和——四状态DP(O(n)时间O(1)空间)
c语言·数据结构·动态规划·时间复杂度·算法题·状态机dp·最大子数组和
小哈里15 小时前
【知识】从学科到实践:自然・工程・社科・人文|算法・研发・产品・品牌设计
程序人生·算法·产品·设计·工程
小π军15 小时前
最大重叠区间数量
数据结构·算法
镜像视界(浙江)科技有限公司16 小时前
《视频孪生之上:二维展示终结,三维空间计算重构城市逻辑》——跨摄像连续表达 × 三角测量厘米级定位 × 动态轨迹建模,构建新一代城市空间
大数据·人工智能·算法·矩阵·音视频·空间计算
a1879272183116 小时前
【算法】双指针与滑动窗口(二):滑动窗口——吃进、判定、吐出
算法·leetcode·双指针·滑动窗口·原理·模板·算法讲解
铭哥的编程日记16 小时前
从一道 LeetCode Hard 到吃透一类题:加权区间调度「排序 + 二分 + DP」
算法·leetcode·职场和发展
Logic10116 小时前
C语言/数据结构字符串题解:找出DNA序列中未配对的独特序列——排序+遍历(O(nlogn))
c语言·数据结构·字符串·数组·排序·时间复杂度·算法题
Navigator_Z17 小时前
LeetCode //C - 1248. Count Number of Nice Subarrays
c语言·算法·leetcode
wzdark17 小时前
基于链表的内存池设计与内存复用机制4
java·数据结构·链表