首页 > 试题广场 >

拆分词句

[编程题]拆分词句
  • 热度指数:61071 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
给定一个字符串s和一组单词dict,判断s是否可以用空格分割成一个单词序列,使得单词序列中所有的单词都是dict中的单词(序列可以包含一个或多个单词)。
例如:
给定s=“nowcode”;
dict=["now", "code"].
返回true,因为"nowcode"可以被分割成"now code".
头像 MeteorChen
发表于 2020-04-21 15:51:00
方法1:递归 很明显,这是个递归的问题。我们应该能比较轻松的写出下面的代码: import java.util.*; public class Solution { public boolean wordBreak(String s, Set<String> dict) { 展开全文
头像 恒成立
发表于 2021-03-28 13:50:39
import java.util.HashSet; import java.util.Set; public class Solution { public boolean wordBreak(String s, Set<String> dict) { if ( 展开全文
头像 华科不平凡
发表于 2020-08-10 11:38:14
用两种方法来做(还有第三种方法,以后再看吧0.0): 动态规划(简单,适合本题) 递归(有人把这叫DFS,我还纳闷了老半天,严格来说本题还有第三种方法BFS) 动态规划的话,理解比较清晰,写起来也比较简单。 递归的话,如果没有优化,会完全通过不了;优化过后,可以和DP媲美。 下面放出DP、DFS 展开全文
头像 崔崔崔崔狗蛋啊
发表于 2022-01-04 22:54:21
//注意边界值问题,因为在字符串中存储是从0下标开始,而在数组中实际是从1开始、arr[0]为辅助--用来判断整体 import java.util.Set; public class Solution {     p 展开全文
头像 Mattylyh
发表于 2022-10-28 20:45:50
从前往后通过int i遍历遍历, 看看前i个是否能分割后被字典找到, 假如可以就设置i下标的boolean值为true, 这个boolean值可以被后面的遍历所利用, 相当于记录下了之前的结果. import java.util.Set; public class  展开全文