day48—双指针-通过删除字母匹配到字典最长单词(LeetCode-524)
题目描述
给你一个字符串 s
和一个字符串数组 dictionary
,找出并返回 dictionary
中最长的字符串,该字符串可以通过删除 s
中的某些字符得到。
如果答案不止一个,返回长度最长且字母序最小的字符串。如果答案不存在,则返回空字符串。
示例 1:
输入:s = "abpcplea", dictionary = ["ale","apple","monkey","plea"] 输出:"apple"
示例 2:
输入:s = "abpcplea", dictionary = ["a","b","c"] 输出:"a"
提示:
1 <= s.length <= 1000
1 <= dictionary.length <= 1000
1 <= dictionary[i].length <= 1000
s
和dictionary[i]
仅由小写英文字母组成
解决方案:
1、依题目要求,先给字典内的单词排序,同等长度ASCII值小的优先(即a<b)
2、双指针:当 s[i] != dictionary[x][j],我们使 i 指针右移,i 一直处于移动中,直到找到 s 中第一位与 dictionary[x][j] 对得上的位置, j 才右移去匹配下一个字符。如此循环。
3、验证长度即可返回对应单词字符。
函数源码:
class Solution { public: string findLongestWord(string s, vector<string>& dictionary) {sort(dictionary.begin(),dictionary.end(),[](string& a,string& b){if(a.length()==b.length()) return a<b;return a.length()>b.length();});for(int x=0;x<dictionary.size();x++){string str=dictionary[x];int i=0,j=0;while(i<str.length()&&j<s.length()){if(str[i]==s[j]) i++;j++;}if(i==str.length()) return str;}return string();} };
相关文章:
day48—双指针-通过删除字母匹配到字典最长单词(LeetCode-524)
题目描述 给你一个字符串 s 和一个字符串数组 dictionary ,找出并返回 dictionary 中最长的字符串,该字符串可以通过删除 s 中的某些字符得到。 如果答案不止一个,返回长度最长且字母序最小的字符串。如果答案不存在,则返回空字…...
美乐迪电玩大厅加载机制与 RoomList 配置结构分析
本篇为《美乐迪电玩全套系统搭建》系列的第三篇,聚焦大厅与子游戏的动态加载机制,深入解析 roomlist.json 的数据结构、解析流程、入口配置方式与自定义接入扩展技巧。通过本篇内容,开发者可实现自由控制子游戏接入与分发策略。 一、RoomList…...
局域网内,将linux(Ubuntu)的硬盘映射成Windows上,像本地磁盘一样使用
如何把同处一个局域网内的Ubuntu硬盘,映射到Windows上,使得Windows就像使用本地磁盘一样使用Ubuntu的磁盘? 要在同一局域网内的Windows上像本地磁盘一样使用Ubuntu硬盘,可以按照以下步骤操作: 1. 在Ubuntu上设置Samba…...
界面控件DevExpress WPF v25.1预览 - 支持Windows 11系统强调色
DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…...
【Hive入门】Hive架构与组件深度解析:从核心组件到生态协同
目录 1 Hive架构全景图 2 核心组件运维职责详解 2.1 Metastore元数据中心 2.2 Driver驱动组件 2.3 Executor执行引擎 3 与HDFS/YARN的协同关系 3.1 HDFS协同架构 3.2 YARN资源调度 4 运维实战案例 4.1 Metastore连接泄露 4.2 小文件合并 5 最佳实践总结 5.1 性能优…...
【图像识别改名】如何批量识别多个图片的区域内容给图片改名,批量图片区域文字识别改名,基于WPF和腾讯OCR的实现方案和步骤
基于WPF和腾讯OCR的批量图像区域文字识别改名方案 本方案适用于以下场景: 大量扫描文档需要根据文档中的特定区域内容(如编号、标题等)进行重命名证件照片需要根据证件号码或姓名进行整理归档企业档案管理需要根据文件上的编号自动分类教育机构需要根据学生试卷上的学号自动…...
从ChatGPT到GPT-4:大模型如何重塑人类认知边界?
从ChatGPT到GPT-4:大模型如何重塑人类认知边界? 在人工智能(AI)领域,近年来最引人注目的进展之一是大型语言模型的发展。从最初的GPT-1到现在的GPT-4,这些模型不仅在技术上取得了显著的进步,而…...
QEMU源码全解析 —— 块设备虚拟化(21)
接前一篇文章:QEMU源码全解析 —— 块设备虚拟化(20) 本文内容参考: 《趣谈Linux操作系统》 —— 刘超,极客时间 《QEMU/KVM源码解析与应用》 —— 李强,机械工业出版社 特此致谢! 上一回开始解析blockdev_init函数,讲到了其中调用的blk_new_open函数,该函数的作用…...
vue2练习项目 家乡特色网站—前端静态网站模板
最近一直在学习前端 vue2 开发,基础知识已经学习的差不多了,那肯定需要写几个项目来练习一下自己学习到的知识点。今天就分享一个使用 vue2 开发的一个前端静态网站,【家乡特色网站】 先给大家看一下网站的样式: 这里就只简单的…...
CFIS-YOLO:面向边缘设备的木材缺陷检测轻量级网络解析
论文地址:https://arxiv.org/pdf/2504.11305 目录 一、论文核心贡献 二、创新点详解 2.1 CARAFE动态上采样 工作原理 优势对比 2.2 C2f_FNB轻量模块 计算效率 2.3 Inner-SIoU损失函数 三、实验验证 3.1 消融实验 3.2 对比实验 四、应用部署 4.1 边缘设备部署流程…...
vue3 + element-plus中el-dialog对话框滚动条回到顶部
对话框滚动条回到顶部 1、需要对话框显示后 2、使用 nextTick 等待 Dom 更新完毕 3、通过开发者工具追查到滚动条对应的标签及class“el-overlay-dialog”。追查方法: 4、设置属性 scrollTop 0 或者 执行方法 scrollTo(0, 0) // 对话框显示标识 const dialogVi…...
赛灵思Xilinx FPGa XCKU15P‑2FFVA1156I AMD Kintex UltraScale+
XCKU15P‑2FFVA1156I 是 AMD Kintex UltraScale 系列中的高性能 FPGA,基于 16 nm FinFET UltraScale 架构 制造,兼顾卓越的性能与功耗比,该器件集成 1,143,450 个逻辑单元和 82,329,600 位片上 RAM,配备 1,968 个 DSP 切片&#…...
力扣2492:并查集/dfs
方法一:并查集。如果不仔细读题,可能会想着把每一个一维数组下标为2的位置进行排序即可。但这是不行的。因为有可能有一些节点在其它集合当中。如果这些节点之间存在一个边权值比节点1所在集合的最小边权值还要小,那么求出来的答案就是错的。…...
宝塔面板引发的血案:onlyoffice协作空间无法正常安装的案例分享
今天和客户一起解决:onlyoffice协作空间的安装问题,本来已经发现由于客户用的机械硬盘,某些安装步骤等待的时间不够,已经加了处理。但是安装成功后,登录系统一直提示报错如下 检查docker容器都是正常的,并且health也是正确的,登录就一直报错。后面发现用免费版的安装程序可以正…...
【阿里云大模型高级工程师ACP习题集】2.1 用大模型构建新人答疑机器人
练习题 【单选题】1. 在调用通义千问大模型时,将API Key存储在环境变量中的主要目的是? A. 方便在代码中引用 B. 提高API调用的速度 C. 增强API Key的安全性 D. 符合阿里云的规定 【多选题】2. 以下哪些属于大模型在问答场景中的工作阶段?( ) A. 输入文本分词化 B. Toke…...
C++中的算术转换、其他隐式类型转换和显示转换详解
C中的类型转换(Type Conversion)是指将一个数据类型的值转换为另一个数据类型的过程,主要包括: 一、算术类型转换(Arithmetic Conversions) 算术类型转换通常发生在算术运算或比较中,称为**“标…...
Python自动化selenium-一直卡着不打开浏览器怎么办?
Python自动化selenium 如果出现卡住不打开,就把驱动放当前目录并指定 from selenium import webdriver from selenium.webdriver.chrome.service import Service import time import osdef open_baidu():# 获取当前目录中的chromedriver.exe的绝对路径current_di…...
AI Agent开发第35课-揭秘RAG系统的致命漏洞与防御策略
第一章 智能客服系统的安全悖论 1.1 系统角色暴露的致命弱点 当用户以"你好"开启对话后追问"你之前说了什么",看似无害的互动实则暗藏杀机。2024年数据显示,93%的开源RAG系统在该场景下会完整复述初始化指令,导致系统角色定义(如电商导购)被完全暴露…...
【MySQL】数据库安装
数据库安装 一. Ubantu下安装 MySQL 数据库1. 查看Linux系统版本2. 添加 MySQL APT 源1. Windows 下载发布包2. 上传发布包到 Linux3. 安装发布包 3. 安装 MySQL4. 查看 MySQL 状态5. 开启自启动6. 登录 MySQL 一. Ubantu下安装 MySQL 数据库 1. 查看Linux系统版本 操作系统版…...
OpenGL shader开发实战学习笔记:第十二章 深入光照
1. 深入光照 1.1. 平行光 我们在前面的章节中,已经介绍了平行光的基本原理和实现步骤 平行光的基本原理是,所有的光都从同一个方向照射到物体上,这个方向就是平行光的方向。 1.2. 点光源 点光源的基本原理是,所有的光都从一个…...
1-1 什么是数据结构
1.0 数据结构的基本概念 数据结构是计算机科学中一个非常重要的概念,它是指在计算机中组织、管理和存储数据的方式,以便能够高效地访问和修改数据。简而言之,数据结构是用来处理数据的格式,使得数据可以被更有效地使用。 数据结构…...
【MySQL】:数据库事务管理
一:学习路径 (1)下载安装mysql (2)学习语言:SQL(操作数据库) (3)mysql集群(提升数据库存储效率) (4)SQL使用,M…...
leetcode 647. Palindromic Substrings
题目描述 代码: class Solution { public:int countSubstrings(string s) {int n s.size();//i<j,dp[i][j]表示子字符串s[i,j]是否是回文子串,i>j的dp[i][j]不定义vector<vector<int>> dp(n,vector<int>(n,false));int res 0;for(int i …...
Linux-scp命令
scp(Secure Copy Protocol)是基于 SSH 的安全文件传输命令,用于在本地和远程主机之间加密传输文件或目录。以下是详细用法和示例: 基本语法 scp [选项] 源文件 目标路径常用选项 选项描述-P 端口号指定 SSH 端口(默认…...
在CSDN的1095天(创作纪念日)
一早上收到CSDN官方的私信,时间飞逝,转眼间3年了…… 一些碎碎念… 算起来也断更一年多了,上一次更博客是去年的3月份,那时候还在实习,同时也是去年的三月份结束了第一段实习回学校准备考研,考完研12月开始…...
STM32——新建工程并使用寄存器以及库函数进行点灯
本文是根据江协科技提供的教学视频所写,旨在便于日后复习,同时供学习嵌入式的朋友们参考,文中涉及到的所有资料也均来源于江协科技(资料下载)。 新建工程并使用寄存器以及库函数进行点灯操作 新建工程步骤1.建立工程2.…...
【Linux】多线程任务模块
创建多个线程,同时完成任务 task.c #include <sys/types.h> #include <unistd.h> #include<stdio.h> #include <sys/wait.h> int create_process_tasks(Task_fun_t tasks[],int tsak_cnt) {pid_t pid;int i 0;for(i 0;i < 4;i){pid …...
Maxscript调用Newtonsoft.Json解析Json
Maxscript调用Newtonsoft.Json解析Json_newtonsoft.json maxscript-CSDN博客...
【前端】【面试】【业务场景】前端如何获取并生成设备唯一标识
✅ 总结 问题:前端如何获取并生成设备唯一标识? 核心要点:浏览器原生信息有限,但通过组合多个维度可生成设备指纹(Device Fingerprint),用于唯一标识设备。 常见方式: 浏览器信息&…...
《Java面试通关宝典:基础篇》——Java面试题系列(持续更新)
《Java面试通关宝典:基础篇》是一篇针对Java编程初学者的面试宝典,旨在帮助大家快速复习Java编程语言的基础知识,提高面试竞争力。本文详细介绍了Java基础知识的各个方面,包括语言基础、面向对象、集合框架、异常处理等内容。同时…...
学习笔记(C++篇)--- Day 3
1.析构函数 析构函数不是完成对对象本身的销毁,C规定对象在销毁时会自动调用析构函数,完成对象中资源的清理释放工作。(严格说,Date是不要析构函数的) 特点: ①析构函数名是在类名钱加上字符~。 ②无参数&a…...
消息队列知识点详解
消息队列场景 什么是消息队列 可以把消息队列理解一个使用队列来通信的组件,它的本质是交换机队列的模式,实现发送消息,存储消息,消费消息的过程。 我们通常说的消息队列,MQ其实就是消息中间件,业界中比较…...
AI 赋能 3D 创作!Tripo3D 全功能深度解析与实操教程
大家好,欢迎来到本期科技工具分享! 今天要给大家带来一款革命性的 AI 3D 模型生成平台 ——Tripo3D。 无论你是游戏开发者、设计师,还是 3D 建模爱好者,只要想降低创作门槛、提升效率,这款工具都值得深入了解。 接下…...
DeepSeek赋能Nuclei:打造网络安全检测的“超级助手”
引言 各位少侠,周末快乐,幸会幸会! 今天唠一个超酷的技术组合——用AI大模型给Nuclei开挂,提升漏洞检测能力! 想象一下,当出现新漏洞时,少侠们经常需要根据Nuclei模板,手动扒漏洞文章…...
【MySQL】表的约束(主键、唯一键、外键等约束类型详解)、表的设计
目录 1.数据库约束 1.1 约束类型 1.2 null约束 — not null 1.3 unique — 唯一约束 1.4 default — 设置默认值 1.5 primary key — 主键约束 自增主键 自增主键的局限性:经典面试问题(进阶问题) 1.6 foreign key — 外键约束 1.7…...
学习深度学习是否要先学习机器学习?工程师的路径选择策略
深度学习与机器学习的关系,如同摩天大楼与地基——前者是后者的高阶延伸,但能否绕过地基直接造楼?本文从技术本质、学习曲线、应用场景三个维度剖析这一关键问题。 一、技术血脉的承继关系 概念体系同源: 损失函数、梯度下降、过拟…...
高防服务器适合哪些行业使用
在当今数字化的时代,网络安全就如同城堡的城墙,而高防服务器则是这道城墙中的坚固堡垒。那么,究竟哪些行业特别需要高防服务器这位“守护天使”的庇佑呢? 首先,金融行业绝对是高防服务器的“头号粉丝”。想象一下&…...
【Docker-16】Docker Volume存储卷
Docker Volume(存储卷) 概念比喻镜像程序的光盘(安装包)容器安装并运行后的 App卷独立的文件夹或硬盘,用来保存数据宿主机装着 Docker 的电脑或服务器,是一切的基础 一、什么是存储卷? 存储卷就是将宿主机的本地文件系统中存在…...
后端如何生成验证码
目录 🔐 一、验证码类型与用途 📸 二、图形验证码的原理(Image Captcha) 🔧 核心流程 🛠️ 示例:用 Python Pillow 生成图形验证码 📱 三、数字验证码(短信/邮箱&a…...
微服务架构下数据库范式的失效与反范式设计的崛起
在传统单体应用中,关系型数据库范式设计被认为是数据库建模的黄金标准。然而,随着企业架构向分布式系统,特别是微服务架构演进,范式化数据库设计的有效性和适应性正受到前所未有的挑战。本文将深入剖析范式设计的设计哲学…...
Redis专题
前言 一:看到你的简历上写了你的项目里面用到了redis,为啥用redis? 因为传统的关系型数据库如Mysql,已经不能适用所有的场景,比如秒杀的库存扣减,APP首页的访问流量高峰等,都很容易把数据库打崩࿰…...
Vue的模板语法——指令语法
2025/4/21 向全栈工程师迈进! 一、插值语法 之前通过插值语法,其显示的效果如下。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widt…...
【Java面试笔记:基础】1.谈谈你对Java平台的理解?
前言 Java 是历史悠久且主流的编程语言,拥有庞大的开发者群体和广泛的应用领域。通过系统学习和实践,构建扎实的 Java 知识体系,提升面试成功率 笔记核心内容 1. Java 平台的核心特性 跨平台特性:Java 的核心特性之一是“Writ…...
NestJS-Knife4j
文章目录 前言✅ 一、什么是 Knife4j?✅ 二、Knife4j 与 Swagger 对比✅ 三、NestJS-Knife4j 集成1. 安装依赖2. 配置 Swagger 与 Knife4j3. 启动应用并访问接口文档 ✅ 四、功能增强1. **接口分组**2. **请求/响应示例**3. **接口文档的美化** ✅ 五、总结 前言 N…...
Linux环境准备(安装VirtualBox和Ubuntu,安装MySQL,MySQL启动、重启和停止)
目录 安装VirtualBox和Ubuntu 安装VirtualBox 安装Ubuntu 下载Ubuntu操作系统的镜像文件 创建虚拟机 虚拟机设置 启动虚拟机,安装Ubuntu系统 Ubuntu基础设置 设置系统为中文 设置中文输入法为拼音 修改分辨率 设置缩放比例 设置息屏时间 设置root用户…...
Nebula图数据库
Nebula 通常指 Nebula Graph,是一款开源的分布式图数据库系统1。以下是其相关介绍1: 特点 高性能:能处理千亿顶点和万亿边的超大规模数据集,提供毫秒级查询延迟,在处理大规模数据时,也能维持低时延的读写和…...
基于 Vue,使用Vuex 或事件总线实现跨组件通信
在基于 Vue Element UI 的 RuoYi 系统中,如果需要在一个界面(界面 A)执行某个操作后,通知另一个界面(界面 B)刷新,可以通过 Vuex 或事件总线(Event Bus)来实现跨组件通信…...
【C++篇】string类的终章:深浅拷贝 + 模拟实现string类的深度解析(附源码)
💬 欢迎讨论:在阅读过程中有任何疑问,欢迎在评论区留言,我们一起交流学习! 👍 点赞、收藏与分享:如果你觉得这篇文章对你有帮助,记得点赞、收藏,并分享给更多对C感兴趣的…...
线性DP:最短编辑距离
Dp 状态表示 f(i,j) 集合所有将A[1~i]变成B[1~j]的操作方式属性min 状态计算 (划分) 增f(i,j)f(i,j-1)1//A[i]元素要增加,说明A前i位置与B前j-1相同删f(i,j)f(i-1,j)1//A[i]元素要删除,说明A前i…...
【全网最全】23种设计模式思维导图详解 | 含React/Vue/Spring实战案例
【全网最全】23种设计模式思维导图详解 | 含React/Vue/Spring实战案例 导图概述 本文通过高清思维导图系统梳理了23种设计模式,分为创建型、结构型、行为型三大类,并标注了各模式在主流框架(如React、Vue、Spring)中的典型应用场…...