力扣-单词拆分

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;

}

}

相关推荐
zander2586 小时前
35. 搜索插入位置:从边界语义理解二分查找
数据结构·算法·leetcode
汤愈韬6 小时前
模型求解算法
人工智能·算法·机器学习
Keven_116 小时前
算法札记:DP中的滚动数组
算法·滚动数组
luj_17686 小时前
随机性在算法与占卜中的共通原理
c语言·开发语言·c++·经验分享·算法
Chen—LSN7 小时前
C语言——深度理解指针(5)
c语言·数据结构·算法·排序算法
佳児素花痴╮9 小时前
树的基础知识与查找排序算法
数据结构·算法
郝学胜-神的一滴9 小时前
Python 高级编程 026:内置数据结构之骈文纵论
开发语言·数据结构·python·程序人生·软件工程
程序员老舅15 小时前
啃透 I2C 驱动开发,才算入门嵌入式 Linux 内核驱动
数据结构·驱动开发·b树·内核·嵌入式·嵌入式开发·i2c
lueluelue4715 小时前
LeetCode:链表
算法·leetcode·链表
橘子汽水16818 小时前
Leetcode 23,543合并K个升序链表,二叉树的直径
算法·leetcode·链表