524. Longest Word in Dictionary through Deleting

2023-10-27

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

Example 1:
Input:
s = “abpcplea”, d = [“ale”,”apple”,”monkey”,”plea”]

Output:
“apple”
Example 2:
Input:
s = “abpcplea”, d = [“a”,”b”,”c”]

Output:
“a”

Note:
1. All the strings in the input will only contain lower-case letters.
2. The size of the dictionary won’t exceed 1,000.
3. The length of all the strings in the input won’t exceed 1,000.

暂时没有想到较好的想法,只是最粗鲁的:比较每个字符串与原串,并记录具有最大长度,或者最大程度里面字母序最小的字符串。

string compare_str(string &str1, string str2){
    if (str2.size() > str1.size())return str2;
    else if (str2.size() < str1.size())return str1;
    else return str1 < str2 ? str1 : str2;
}

string findLongestWord(string s, vector<string>& d) {
    if (s == "" || d.size() == 0)return "";
    string ss = "";
    for (auto str : d){
        if (str.size() > s.size())continue;
        int size = str.size();
        int k = 0, i = 0;
        while (i < s.size() && k < size){
            if (s[i] == str[k])i++, k++;
            else i++;
        }
        if (k == size)ss = compare_str(ss, str);
    }
    return ss;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

524. Longest Word in Dictionary through Deleting 的相关文章

  • strapi的使用(二)-- Graphql

    一 Graphql 一种为你的API而生的查询语言 可以理解为动态api 一般来说我们都是在后端写好sql查询语句查询数据库数据 前端请求这个api返回的数据是固定的 而Graphql可以让前端去决定请求什么字段回来 二 strapi安装G
  • OPENSSL库的使用-RSA篇

    一 RSA算法简介 RSA公钥加密算法是1977年由Ron Rivest Adi Shamirh和LenAdleman在 美国麻省理工学院 开发的 RSA取名来自开发他们三者的名字 RSA是目前最有影响力的公钥加密算法 它能够抵抗到目前为止
  • 我的GIT练习TWO

    目录 前言 GIT安装教程 Git作者 GIT优点 GIT缺点 为什么要使用 Git GIT练习TWO C1 C2 C3 C4 C5 C6 C7 总结 前言 Git 是一个分布式版本控制及源代码管理工具 Git 可以为你的项目保存若干快照
  • vue3+element-plus上传文件,预览文件

    vue3 ts element plus上传文件 预览文件 场景 使用element plus的el upload标签 手动上传文件 可预览docx xlsx pdf jpg jpeg png 本地资源以及网络资源 1 使用el uploa

随机推荐

  • 三废的日常--Nginx实现负载均衡

    第二天 小废给大废买了杯奶茶 大废 这才差不多 讲了这么多早就应该给我奶茶了 吧唧吧唧 大废 那今天就来讲讲Nginx是如何实现负载均衡吧 二废 这个我知道 我看过Nginx的配置 nginx通过upstream下的配置 对配置的服务器进行
  • Go程序当父进程被kill,子进程也自动退出的问题记录

    平常我们启动一个后台进程 会通过nouhp 的方式启动 这样可以在退出终端会话的时候 进程仍然可以继续在后台执行 进程的父进程id会从原来的bash进程变成1 在go程序中 通过nouhp 的方式启动子进程 预期是即使父进程挂掉 子进程也能
  • 在阿里云CentOS7上搭建ftp服务器

    当我再次被各种出站入站规则玩弄 在搜索引擎的帮助走出泥淖后 我决定记下这次经历 1 FTP服务器的部署 1 1 安装vsftpd 笔者使用的是阿里云的ECS服务器 这不是广告 而是提醒 P 操作系统为CentOS7 首先 安装vsftp v
  • vue下基于elementui自定义表单-后端数据设计篇

    vue下基于elementui自定义表单 后端篇 自定义表单目前数据表单设计是基于数据量不大的信息单据场景 因为不考虑数据量带来的影响 数据表有 1 表单模版表 2 表单实例表 3 表单实例项明细表 4表单审批设计绑定表 以FormJson
  • 软件测试面试题11-接口自动化测试怎么做?

    面试过程中也遇到了这个问题 自己的回答 接口自动化测试 之前做过 第一个版本是用jmeter 做的 1 主要是将P0级别的功能接口梳理出来 根据业务流抓包获取相关接口 并在jmeter中跑通 2 是整理了项目上的所有接口 先将单个接口跑通
  • JDBC连接数据库的方法及注意事项

    Hello 小伙伴们 大家好 1 准备工作 先下载一个JDBC的驱动jar包 就在下面 直接拿去 https dev mysql com downloads connector j 放在新建的Directory文件夹里 一定要与src是同级
  • 重写QTabWidget,在标签后面添加图标按钮

    原本的QTabWidget没有支持在标签后面添加自定义的按钮的方法 想在后面添加自定义的功能按钮需要重写QTabWidget类 自己实现按钮图标的重绘和鼠标点击判断等操作 1 使用到的主要事件函数 1 void paintEvent QPa
  • 钢条切割-递归,记忆性递归,dp

    钢条切割 方法1 递归 import java util Scanner public class Cutting public static int n 10 public static int p 1 5 8 16 10 17 17 2
  • CBU计算机硕士申请难度,电脑开机后CBU百分只百是什么问题

    公告 为响应国家净网行动 部分内容已经删除 感谢读者理解 话题 电脑开机后CBU百分只百是什么问题回答 有几点建议供您参考 一 使用360 优化大师等工具 将系统启动项进行优化 尽量不要自启动不常用的进程 如果不会就选择 一键优化 二 使用
  • assert_param的应用

    在STM32的固件库 到处都可以见到assert param 的使用 一开始见到这玩意就被打蒙了 不晓得它存在的价值 各种查询 理解综合如下 如果打开任何一个例程中的stm32f10x conf h文件 就可以看到实际上assert par
  • 记一次部署发现r2dbc连接数据库问题

    1 背景 a 项目使用R2DBC连接数据库 b 项目在自己搭建环境部署 各种组件使用自己的镜像 没有问题 在客户现场部署 mysql等使用客户服务 发现启动成功后隔几分钟数据库连接被断开 访问数据库报连接超时 2 最终原因 客户数据库服务的
  • go 入门学习 go 语言变量声明方式

    什么是变量 在编程语言中 为了方便操作内存特定位置的数据 我们用一个特定的名字与位于特定位置的内存块绑定在一起 这个名字被称为变量 动静态语言的区别 静态语言有别于动态语言的一个重要特征 变量声明 比如PHP 动态 解释性语言 不必须设定变
  • Unity 透视镜效果 shader模板测试实现 shader学习杂记(一)

    1 透视镜效果示例 场景中创建了三个物体 一个方块 一堵墙 一个球体 然后创建三个材质球 三个初始的shader 将三个shader分别拖给三个材质球 再把材质球拖给三个物体 给这三个物体红色 蓝色 绿色 便于观察 看一下以红色方块为透视镜
  • 成功简易编译cgal

    以前从csdn上下载的cgal 发现下载不了了 索性进行自己编译 用vcpkg 但是编译boost时中间报错 浪费大量时间 从网上查看 很多人都是源码开始编译 这是劝退的节奏么 感谢博主 CGAL编译与配置 尘埃1206的博客 CSDN博客
  • cocos2d-x for android:CCSprite 精灵动画

    setUniformsForBuiltins nodeToParentTransform kmGLGetMatrix KM GL PROJECTION matrixP kmGLGetMatrix KM GL MODELVIEW matrix
  • 数学 {罗尔中值定理}

    数学 罗尔中值定理 罗尔中值定理 定义 条件 函数满足 C a b C a b C a b
  • 面试官:Java为什么只有值传递?

    面试官爱问的一个基础问题 Java是值传递还是引用传递 想必大家都对这个问题都有自己的看法 那到底事实是怎样的 我们又该如何回答面试官这个问题呢 今天咱们就来好好分析一波 值传递 引用传递 首先 我们得先知道什么叫值传递 什么叫引用传递 知
  • Git第十八讲 Git常见问题解决

    Git常见问题解决 在使用 Git 进行版本控制时 你可能会遇到一些常见问题和错误 本文将介绍一些常见问题 并提供解决方案 以帮助你更好地使用 Git 1 Git 报错和常见问题解决方案 Git 在使用过程中可能会产生各种报错信息 这些错误
  • 刷脸支付全国范围火爆招募合伙人

    出门不带钱 买任何东西都靠手机的生活已经完全颠覆了我们对社会生活的认知 而这样改变仅仅出现3年之久 往前追溯 我们会发现 眼下的信息技术进步呈爆炸式递增的态势 刷脸支付技术的出现与应用 更是将信息生活的便捷度提升到了一个更高的档次上 除了让
  • 524. Longest Word in Dictionary through Deleting

    Given a string and a string dictionary find the longest string in the dictionary that can be formed by deleting some cha