首页 > 其他分享 >leetcode139:单词拆分

leetcode139:单词拆分

时间:2022-08-27 21:28:53浏览次数:59  
标签:子串 字符 单词 wordDict boolean 拆分 字符串 leetcode139

package com.mxnet;

import java.util.HashSet;
import java.util.List;

public class Solution139 {

    public static void main(String[] args) {

    }

    /**
     * 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。
     *
     * 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用
     * @param s
     * @param wordDict
     * @return
     * 思路:动态规划
     * 1. 首先使用hash结构判断字符串是否被包含在集合中
     * 2. 遍历字符串中的每一个字符,取出以这个字符为结尾的所有子串
     * 3. 判断所有子串是否包含在hash集合中
     * 4. 使用Boolean数组保存当前位是否可以被拼接
     * 5. 若某一子串在集合中,则将其所在Boolean数组所在为置为true
     * 6. 遍历完所有字符时,若Boolean数组最后一位为true,说明可以被拼接
     */
    public boolean wordBreak(String s, List<String> wordDict) {
        //使用hash结构判断字符串子串是否被包含
        HashSet<String> hashSet = new HashSet<>(wordDict);
        //使用boolean类型数组判断某一位字符是否被包含
        boolean[] isConcat = new boolean[s.length() + 1];
        //初始空串默认被包含
        isConcat[0] = true;
        //遍历字符串每一位字符,并判断由其组成的子串是否包含在集合中
        for (int i = 1; i <= s.length(); i++) {
            //遍历该字符前的所有子串
            for (int j = 0; j < i; j++) {
                //如果某一子串被包含,则将相应位置置为true
                if (isConcat[j] && hashSet.contains(s.substring(j,i))){
                    isConcat[i] = true;
                    break;
                }
            }
        }
        //若最后一位也为true,说明包含
        return isConcat[s.length()];
    }
}

标签:子串,字符,单词,wordDict,boolean,拆分,字符串,leetcode139
From: https://www.cnblogs.com/mx-info/p/16631491.html

相关文章

  • windows系统上的大文件拆分合并
    上周碰到一个并不算很大的问题,但是也有记录的价值。从公司带出来的离线补丁包需要传到客户服务器上,但是被告知并不能在现场机器上插U盘,会触发告警。上传只能把U盘上的......
  • # autoit 自动翻译并附注 pdf中不认识的单词
    autoit自动翻译并附注pdf中不认识的单词学印尼语遇到一个问题,即需要大量复制pdf文本中的个别单词到谷歌翻译中,这个过程需要重复点击和按键,及其耗费时间,为此写了一个脚本......
  • stream() 参数拆分
    publicstaticvoidmain(String[]args){List<String>list=newArrayList<String>(){{this.add("a,b");......
  • 银行对账单PDF一页拆分多页
    一个页拆分多个页,按照流水Stringbank="{\n"+"\t\"bank\":[\n"+"\t\t{\n"+"\t\t\t\"name\":\"中国农业......
  • tidb region拆分
    聚簇表region拆分CREATETABLE`sbtest1`(`id`int(11)NOTNULLAUTO_INCREMENT,`k`int(11)NOTNULLDEFAULT'0',`c`char(120)NOTNULLDEFAULT'',`pad......
  • 79. 单词搜索
    79.单词搜索给定一个 mxn二维字符网格 board和一个字符串单词 word。如果 word存在于网格中,返回true;否则,返回false。单词必须按照字母顺序,通过相邻的单元......
  • java用括号拆分字符串
    我有一个遵循这种模式的String列表:'Namewithspace(field1_field2)CONST'我想提取:带空格的名称括号内的值括号后的CONST值对于括号中的字符串()我正在使用:\(.*......
  • js拆分选择题各选项【javascript将选择题选项通过正则表达式拆分出来】
    最近做题库项目需要添加试题,尤其是选择题逐个添加各选项很繁琐。通过以下正则表达式可以将选择题题目、选项迅速分离出来,并自动添加到选项文本框$("#split").clic......
  • 程序员最容易读错的单词,听到status我炸了
    最近在跟同事讨论问题的时候,他突然对我说。。。这个死太丢死不太对,需要改一下。。。我当时应该是愣住了,然后想了一下,你说的是status吗???看着他疑惑不解的眼神,我当时的表......
  • 1455. 检查单词是否为句中其他单词的前缀
    1455.检查单词是否为句中其他单词的前缀给你一个字符串sentence作为句子并指定检索词为searchWord,其中句子由若干用单个空格分隔的单词组成。请你检查检索词se......