算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !

今天和大家聊的问题叫做 通过删除字母匹配到字典里最长单词,我们先来看题面:

https://leetcode-cn.com/problems/longest-word-in-dictionary-through-deleting/

Given a string s and a string array dictionary, return the longest string in the dictionary that can be formed by deleting some of the given string characters. If there is more than one possible result, return the longest word with the smallest lexicographical order. If there is no possible result, return the empty string

给你一个字符串 s 和一个字符串数组 dictionary ,找出并返回 dictionary 中最长的字符串,该字符串可以通过删除 s 中的某些字符得到。

如果答案不止一个,返回长度最长且字母序最小的字符串。如果答案不存在,则返回空字符串。

示例

示例 1:
输入:s = "abpcplea", dictionary = ["ale","apple","monkey","plea"]
输出:"apple"示例 2:
输入:s = "abpcplea", dictionary = ["a","b","c"]
输出:"a"

解题

思路:通过删除字符串 s 中的一个字符能得到字符串 t,可以认为 t 是 s 的子序列,我们可以使用双指针来判断一个字符串是否为另一个字符串的子序列,也可以使用String类的indexOf方法来验证是否是子序列。

class Solution {public String findLongestWord(String s, List<String> d) {String max= ""; // 将最长单词初始化为空,没有匹配到的情况下可以直接返回for (String word: d) {if (word.length()<max.length()) //长度小于最长单词直接跳过continue;if (word.length()==max.length() && max.compareTo(word)<0) //长度相等,但字典顺序大的也跳过continue;if (isSubstring(s, word)) //剩下符合条件的单词,若匹配上则更新最长单词max= word;}return max;}/** 匹配长字符串和单词,若单词为长字符串的子序列(即长字符串可通过删除字符变为该单词),则返回true */private boolean isSubstring(String str, String word) {int len_1= str.length();int len_2= word.length();int p=0; //单词中用于匹配的字符位置for (int i=0; i<len_1; i++) {if(str.charAt(i)==word.charAt(p)) {if(p==len_2-1) //字符位置已匹配到单词尾,则单词是子序列return true;p++; //长字符串和单词中字符相等,则更新单词中下个字符位置}}return false; //单词没有匹配上,不是子序列}
}

好了,今天的文章就到这里,如果觉得有所收获,请顺手点个在看或者转发吧,你们的支持是我最大的动力 。

上期推文:

LeetCode1-520题汇总,希望对你有点帮助!

LeetCode刷题实战521:最长特殊序列 Ⅰ

LeetCode刷题实战522:最长特殊序列 II

LeetCode刷题实战523:连续的子数组和

​LeetCode刷题实战524:通过删除字母匹配到字典里最长单词相关推荐

  1. Leetcode刷题100天—524. 通过删除字母匹配到字典里最长单词(双指针)—day38

    前言: 作者:神的孩子在歌唱 大家好,我叫运智 524. 通过删除字母匹配到字典里最长单词 难度中等192收藏分享切换为英文接收动态反馈 给你一个字符串 s 和一个字符串数组 dictionary 作 ...

  2. 【524. 通过删除字母匹配到字典里最长单词】

    leetcode力扣刷题打卡 题目:524. 通过删除字母匹配到字典里最长单词 描述:给你一个字符串 s 和一个字符串数组 dictionary ,找出并返回 dictionary 中最长的字符串,该 ...

  3. 524. 通过删除字母匹配到字典里最长单词

    524. 通过删除字母匹配到字典里最长单词 给你一个字符串 s 和一个字符串数组 dictionary 作为字典,找出并返回字典中最长的字符串,该字符串可以通过删除 s 中的某些字符得到. 如果答案不 ...

  4. JAVA中返回值为字母时_LeetCode#524通过删除字母匹配到字典里最长单词-java中CompareTo方法用法以及Comparator中Compare方法返回值...

    import java.util.Collections; import java.util.Comparator; import java.util.List; /* 524. 通过删除字母匹配到字 ...

  5. LeetCode 524. 通过删除字母匹配到字典里最长单词(双指针)

    1. 题目 给定一个字符串和一个字符串字典,找到字典里面最长的字符串,该字符串可以通过删除给定字符串的某些字符来得到. 如果答案不止一个,返回长度最长且字典顺序最小的字符串.如果答案不存在,则返回空字 ...

  6. 2022-2-14 Leetcode 524.通过删除字母匹配到字典里最长单词

    我自己的方法: 1.依次从字典里取出每一个单词,在字符串 s 中进行查找. 查找的过程中可能出现的问题有: 字母出现多次,只找到最前面的字母,顺序上会有混乱 字母都找到了,但是都是同一个字母 简而言之 ...

  7. LeetCode 524 通过删除字母匹配到字典里最长单词

    题目描述 给定一个字符串和一个字符串字典,找到字典里面最长的字符串,该字符串可以通过删除给 定字符串的某些字符来得到.如果答案不止一个,返回长度最长且字典顺序最小的字符串. 如果答案不存在,则返回空字 ...

  8. 第十二Leetcode每日刷题——524. 通过删除字母匹配到字典里最长单词

    给你一个字符串 s 和一个字符串数组 dictionary ,找出并返回 dictionary 中最长的字符串,该字符串可以通过删除 s 中的某些字符得到. 如果答案不止一个,返回长度最长且字母序最小 ...

  9. LeetCode 524. 通过删除字母匹配到字典里最长单词

    文章目录 一.题目描述 二.解题思路 三.代码 一.题目描述 1.题目描述 给你一个字符串 s 和一个字符串数组 dictionary ,找出并返回 dictionary 中最长的字符串,该字符串可以 ...

  10. leetcode记录-524-通过删除字母匹配到字典里最长单词-双指针

    524.通过删除字母匹配到字典里最长单词 思路 理解题意是一大难点...对于list中的字符串,如果可以由s删除一些字符得到,那么这个字符串初步符合标准,把他和str(初始为空)的比较,如果其长度更长 ...

最新文章

  1. JVM内存管理:深入Java内存区域与OOM
  2. jqgrid 单元格绑定点击事件_自定义事件带参数的触发过程
  3. leetcode复习1
  4. Meteor工作目录的划分
  5. idea 修改Git密码和账号方法
  6. Microsoft Office 2007的ContentType
  7. 垃圾oracle_第 14 章 垃圾回收概述
  8. Abp vnext Web应用程序开发教程 1 —— 创建服务器端
  9. python脚本文件删除
  10. Spring4-使用组件过滤器
  11. 字符串 kmp算法解析
  12. 博文视点大讲堂第29期——2天玩转单反相机
  13. 创建单IP的×××网络
  14. 如何做好软件项目管理工作?
  15. 机器学习基础 集成学习进阶(XGBoost+LightGBM)
  16. 联想笔记本重装系统无法进入记录
  17. 邮票的制作(1.主要画笔工具2.钢笔工具)
  18. CentOS 7 开机自启汇总
  19. 国赛高教杯使用python/matlab必会基础数学建模-数据处理模块(课程4)
  20. 【camera】Mtk相机冷启动的拆解笔记

热门文章

  1. Python+Pytest+tox 接口自动化测试框架
  2. 基于Android studio的花店app设计与开发案例
  3. Uibot 语法词法(2)
  4. 轻松转换文档:antennahouse/Office Server Document Converter
  5. 如何将多个py文件打包成exe格式
  6. 群控系统 微信群控系统 手机群控系统 手机群控软件
  7. 618口碑最好的运动蓝牙耳机,佩戴舒适蓝牙耳机推荐
  8. iPhone手机屏幕的尺寸180330更新
  9. 安装使用Drill-1.10
  10. scrapy爬取京东商品评论并保存至Mysql数据库中