当前位置:网站首页>头脑风暴:单词拆分
头脑风暴:单词拆分
2022-08-09 23:53:00 【InfoQ】
题目
输入: s = "leetcode", wordDict = ["leet", "code"]
输出: true
解释: 返回 true 因为 "leetcode" 可以由 "leet" 和 "code" 拼接成。
输入: s = "applepenapple", wordDict = ["apple", "pen"]
输出: true
解释: 返回 true 因为 "applepenapple" 可以由 "apple" "pen" "apple" 拼接成。
注意,你可以重复使用字典中的单词。
输入: s = "catsandog", wordDict = ["cats", "dog", "sand", "and", "cat"]
输出: false
解题方法
代码实现
class Solution {
public boolean wordBreak(String s, List<String> wordDict) {
Set<String> wordDictSet = new HashSet(wordDict);
boolean[] dp = new boolean[s.length() + 1];
dp[0] = true;
for(int i = 1; i <= s.length(); i++){
for(int j = 0; j < i; j++){
if(dp[j] && wordDictSet.contains(s.substring(j, i))){
dp[i] = true;
break;
}
}
}
return dp[s.length()];
}
}
最后
- 时间复杂度:O(n^2),其中 nn 为字符串 s 的长度。我们一共有 O(n) 个状态需要计算,每次计算需要枚举 O(n) 个分割点,哈希表判断一个字符串是否出现在给定的字符串列表需要 O(1) 的时间,因此总时间复杂度为 O(n^2)。
- 空间复杂度:O(n),其中 n 为字符串 s 的长度。
边栏推荐
猜你喜欢
CST Studio Suite 2021软件安装包和安装教程
Biotin-Cy2 Conjugate,生物素-Cy2 偶联物_Cy2 生物素偶联物
dlopen failed: library “libtaml.so“ not found
02| operator
聚焦热点 | ISC 2022软件供应链安全治理与运营论坛圆满落幕
共创 Ray 中文社区,Ray Forward Meetup 2022 直播邀你参加!
c语言结构体、函数以及指针练习(简单通讯录)
Involved in PEG-Biotin (CAS: 1778736-18-7) Biotin-PEG4-OH is widely used in molecular target detection
线程的同步与互斥
【C语言】通讯录《静态内存版本》
随机推荐
3.1 - 程序设计语言 3.2 - 高级语言的特点及引用 3.3 - 静态/动态类型语言
Docker interview question 2--get the number of database connections and docker-compose
What do you know about FITC-labeled biotin (FITC-biotin|CAS: 134759-22-1)?
router路由
重估HR SaaS:一体化后的新三年
算法---整数替换(Kotlin)
CAS:183896-00-6 (Biotin-PEG3-C3-NH2) PEG衍生物
Next.js获取路由参数及styled-jsx 的使用
Project (7) - PolarSeg point cloud semantic segmentation
-红与黑-
-象棋比赛-
为什么不建议你在 Docker 中跑 Mysql ?
知行合一的时候
线程的同步与互斥
生物素叠氮化物中的(CAS:1527486-16-3TAMRA-azide-PEG3-Biotin)反应的特点!
hql语言
abicc 知:API compatibility report 介绍
聚焦热点 | ISC 2022软件供应链安全治理与运营论坛圆满落幕
WPF DataGrid using data templates
WPF DataGrid 使用数据模板