博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法-动态规划-单词拆分
阅读量:3962 次
发布时间:2019-05-24

本文共 738 字,大约阅读时间需要 2 分钟。

在这里插入图片描述

分析

一个单词从中间切多刀,其实就可以看成只切了两刀,不过前面一段可以继续切,后面一段不可以继续切,就和我之前总结切绳子是一个道理,如果前面一段可以找到(这里其实可以继续分,只要分割后的几段也能在集合中找到也算是找的到),后面这一段也可以找到,拼接在一起后,就一定可以满足要求,可以用一个数组dp[j]表示0到j-1这个字符串存不存在(即使是分割后),只要这个字符串存在dp[j],s.substring(j, i)也存在,就表示这个字符串可以

class Solution {
public boolean wordBreak(String s, List
wordDict) {
HashSet
set = new HashSet<>(wordDict); int len = s.length(); boolean[] dp = new boolean[len + 1]; dp[0] = true; for(int i = 1; i <= len; i++) {
for(int j = 0; j < i; j++) {
if(dp[j]&&set.contains(s.substring(j, i))) {
dp[i] = true; break; } } } return dp[len]; }}

转载地址:http://whhzi.baihongyu.com/

你可能感兴趣的文章
Selenium-webdriver系列教程(6)———如何捕获弹出窗口
查看>>
Eclipse(Windowns XP)下搭建Android开发环境——简介
查看>>
Android自动化工具Monkeyrunner使用(一)
查看>>
Android自动化工具Monkeyrunner使用(二)
查看>>
Android自动化工具Monkeyrunner使用(三)
查看>>
Android自动化工具Monkeyrunner使用(四)
查看>>
Android自动化工具Monkeyrunner使用(五)
查看>>
Selenium-webdriver系列教程(7)———如何处理alert和confirm
查看>>
Selenium-webdriver系列教程(8)———使用Page Object设计模式
查看>>
Python logging模块详解
查看>>
加载selenium2Library失败---robotframework环境搭建(RIDE无法启动?)
查看>>
Robot Framework 的安装配置和简单的实例介绍
查看>>
APP功能测试的7大注意点
查看>>
Python之unittest
查看>>
Fiddler之——Fiddler简介
查看>>
Fiddler之——Fiddler抓包分析
查看>>
Android开发之——activity跳转
查看>>
Android开发之——Menu 操作
查看>>
Android开发之——布局实例
查看>>
Android开发之——SQLite使用方法
查看>>