LeetCode139:Word Break

Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separated sequence of one or more dictionary words.

For example, given
s = “leetcode”,
dict = [“leet”, “code”].

Return true because “leetcode” can be segmented as “leet code”.

记得最開始做动态规划的题时是打开过这道题的,可是那时没什么思路。如今动态规划的题刷了不少了,今天再做这道题时非常快就想出了状态和状态转移方程。不能不说还是有点进步。


定义A[i]表示0到下标为i的子字符是否能被切割成dict中的多个单词。
那么A[i]与A[j],0<=j< i都有关系,即A[i]与前A[]中的前i-1项都有关系,详细为:

  1. 假设A[0]为1。推断s中下标从1開始到i结束的字符是否在dict中,假设在,设置A[i]为1,跳出。否则进入第二步。
  2. 假设A[1]为1,推断s中下标从2開始到i结束的字符是否在dict中。假设在。设置A[i]为1,跳出,否则进入第二步;
    …..
    这样一直遍历到A[i-1]位置。


    在上面的遍历过程中假设遍历到某一步j,A[j]=1而且j+1到i表示的字符串出如今dict中,表示前j个字符串能切割成dict中的单词,j+1到i中的字符串串也能切割成dict中的单词。这样表示前i个字符能被切割成dict中的单词。

实际编写代码时,j能够从i開始倒着開始遍历,这样能够降低遍历的次数。

runtime:4ms

class Solution {
public:bool wordBreak(string s, unordered_set<string>& wordDict) {int length=s.size();int *A=new int[length]();for(int i=0;i<length;i++){for(int j=i;j>=0;j--){if(j==i){A[i]=isExist(s,0,i,wordDict);}else if(A[j]==1){A[i]=isExist(s,j+1,i,wordDict);}if(A[i]==1)break;}}return A[length-1]==1;}int isExist(string &s,int first,int last,unordered_set<string> &wordDict){string str=s.substr(first,last-first+1);if(wordDict.count(str))return 1;elsereturn 0;}};

转载于:https://www.cnblogs.com/zsychanpin/p/7197159.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/283065.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTTP2指纹识别(一种相对不为人知的网络指纹识别方法)

这是关于网络指纹识别的两部分系列的第二部分上一部分我介绍了有关TLS 指纹识别方法&#xff08;以及在不同客户端的指纹有何区别&#xff09;&#xff1a;https://mp.weixin.qq.com/s/BvotXrFXwYvGWpqHKoj3uQHTTP/2 指纹识别和Tls指纹类似也是一种 Web 服务器可以依赖指纹来识…

中兴智能视觉大数据:人脸识别技术目前处于“用的不够,用的不好”

中兴智能视觉大数据报道&#xff1a;在2018年5月30日举行的“人脸识别等AI技术在校园周边安全中的应用”研讨会上&#xff0c;中国人民大学危机管理研究中心主任唐钧指出&#xff0c;人脸识别等AI技术具有“精细识别”、“提前干预”、“及时处置”等优势&#xff0c;有利于促进…

HAProxy的日志配置以及ACL规则实现负载均衡

HAProxy配置日志策略 默认情况下,HAProxy是没有配置日志的在centos6.3下默认管理日志的是rsyslog,可以实现UDP日志的接收,将日志写入文件,写入数据库先检测rsyslog是否安装rpm -q rsyslog安后在/etc/rsyslog.d/下创建haproxy.conf,内容如下: 1 $ModLOad imudp 2 $UDPServerRun …

常见浏览器兼容性问题与解决方案?

(1)浏览器兼容问题一&#xff1a;不同浏览器的标签默认的外补丁和内补丁不同 问题症状&#xff1a;随便写几个标签&#xff0c;不加样式控制的情况下&#xff0c;各自的margin 和padding差异较大。碰到频率:100%解决方案&#xff1a;CSS里 *{margin:0;padding:0;}备注&#xff…

C#反射,性能优化,不止于优化

“ 架构师的价值&#xff0c;在于独立且理性的思考”想要写出灵活而且具有更好适应性的代码&#xff0c;反射是首选方案。反射赋予程序在运行时动态创建实例的能力&#xff0c;可以在程序运行时&#xff08;而非编译时&#xff09;获取实例类型&#xff0c;获取元数据信息&…

设计模式C++实现--Observer模式

2019独角兽企业重金招聘Python工程师标准>>> 观察者模式 当对象间存在一对多关系时&#xff0c;则使用观察者模式&#xff08;Observer Pattern&#xff09;。比如&#xff0c;当一个对象被修改时&#xff0c;则会自动通知它的依赖对象。观察者模式属于行为型模式。…

Liunx 安装mysql 5.6.16

2019独角兽企业重金招聘Python工程师标准>>> 1.卸载原有的mysql 1)先查看原有的mysql rpm -qa|grep -i mysql 2)删除 mysql rpm -e --nodeps 包名 3)删除老版本 mysql的开发头文件和库 rm -fr /usr/lib/mysql rm -fr /usr/include/mysql 注意&#xff1a;卸载后/va…

java有效索引范围_Java索引超出范围:0

我拼命试图找出一种方法来阻止“字符串索引超出范围&#xff1a;0”错误……只要我不输入任何内容然后继续执行,就会发生这种情况&#xff1a;static String getRef(Scanner Keyboard){Scanner keyboard new Scanner(System.in);String ref "";boolean valid false…

UESTC 电子科大专题训练 DP-N

题意&#xff1a;有n个人写m行代码&#xff0c;第i个人写一行代码会产生ai个bug&#xff0c;问bug小于b的方案数 思路&#xff1a;背包二维费用 AC代码&#xff1a; #include "iostream" #include "string.h" #include "stack" #include "q…

HashMap与HashTable的区别

HashMap和HashSet的区别是Java面试中最常被问到的问题。如果没有涉及到Collection框架以及多线程的面试&#xff0c;可以说是不完整。而Collection框架的问题不涉及到HashSet和HashMap&#xff0c;也可以说是不完整。HashMap和HashSet都是collection框架的一部分&#xff0c;它…

数据挖掘 pandas基础入门之操作

为什么80%的码农都做不了架构师&#xff1f;>>> 统计 import pandas import numpy# 通过传递一个 numpyarray&#xff0c;时间索引以及列标签来创建一个DataFrame&#xff1a; dates pandas.date_range("20180509", periods6) df pandas.DataFrame(num…

C# Task.Delay()和Thread.Sleep()有什么区别?

很多时候我们需要做一段延时处理&#xff0c;就直接Thread.Sleep(n)处理了&#xff0c;但实际上延时也可以用Task.Delay(n)&#xff0c;那二者之间有没有区别呢&#xff1f;我们先来看一个案例&#xff1a;using System; using System.Threading; using System.Threading.Tasks…

java queue源码_java源码解读--queue

queue接口特点&#xff1a;可以模拟队列行为&#xff0c;即“先进先出”。接口结构queue接口继承了Collection接口&#xff0c;并增加了一些新方法12345678910111213141516public interface extends Collection{boolean add(E e);//将元素插入队列&#xff0c;如果失败返回fals…

旧题新做:从idy的视角看数据结构

“今天你不写总结……&#xff01;&#xff01;&#xff01;” 额…… 还是讲我的吧。这些考试都是idy出的题。 20170121&#xff1a;DFS序、 ST表、线段树练习 这是第一次考数据结构。 Problem 1. setsum 1 second    给你一个长度为N 的整数序列&#xff0c;支持两种操作…

常用的 Java 工具类之 Apache 全家桶使用

平常我们在日常的开发中会一些通用的功能封装成一些工具类&#xff0c;以便之后复用。但是有些常用功能&#xff0c;业界已经存在&#xff0c;我们无需造轮子&#xff0c;只需直接使用或借用它们的 Api &#xff0c;构建我们的自己项目中工具类。这篇首先介绍平常用到的 Apache…

.NET MAUI实战 MessagingCenter

1.概要在.NET MAUI提供了消息机制&#xff0c;该机制为订阅/发布模式。发布-订阅模式是一种消息传递模式&#xff0c;在此模式下&#xff0c;发布者可在无需知道任何接收方&#xff08;称为订阅方&#xff09;的情况下发送消息。同样&#xff0c;订阅方可在不了解任何发布方的情…

elasticsearch 5.1 问题 ubuntu

1、can not run elasticsearch as root 切换到非root用户 2、main ERROR Could not register mbeans java.security.AccessControlException: access denied ("javax.management.MBeanTrustPermission" "register") 改变elasticsearch文件夹所有者到当前用…

洛谷——P1033 自由落体

https://www.luogu.org/problem/show?pid1033#sub 题目描述 在高为 H 的天花板上有 n 个小球&#xff0c;体积不计&#xff0c;位置分别为 0&#xff0c;1&#xff0c;2&#xff0c;…&#xff0e;n-1。在地面上有一个小车&#xff08;长为 L&#xff0c;高为 K&#xff0c;距…

java 接口防刷_java轻量级接口限流/防刷插件

简介call-limit提供接口限流、防刷的功能&#xff0c;插件基于spring开发&#xff0c;在应用应用的任何一个逻辑层皆可使用(web、service、dao)&#xff0c;插件支持单机应用下的限流和分布式应用的限流(分布式应用限流需要依赖redis)&#xff0c;在简单业务场景下插件可为大家…

【leetcode】521. Longest Uncommon Subsequence I

题目如下&#xff1a; 解题思路&#xff1a;本题有点意思。首先如果输入的两个字符串都为空&#xff0c;那么结果是-1&#xff1b;如果两个字符串长度不一样&#xff0c;那么结果是较长的字符串的长度&#xff0c;因为较长的字符串肯定是自身的子序列&#xff0c;但一定不是较短…