当前位置: 首页 > news >正文

【2023美团后端-8】删除字符串的方案,限制不能连续删

小美定义一个字符申是“美丽串”,当且仅当该字符串包含”mei”连续子串。例如”meimei”、“xiaomeichan"都是美丽串,现在小美拿到了一个字符串,她准备删除一些字符,但不能删除两个连续字符。小美希望最终字符串变成美丽串,她想知道有多少种删除方案?

输入描述
一个仅包含小写字母的字符串,长度不超过 20。

输出描述
删除的方案数

示例1
input
meili

output
3

解释: 可以删除l,i,或者不删.共3种.

思路:

暴力搜索,
preDeleted记录前序的状态,false表示未操作,true表示删除.
having记录当前拥有了几个序列.
base case: 字符串遍历结束.
注意: 初始为[0,false,0], 遇到m直接置1,having=3随便操作,having<3,选用了其他字符,having置0.

代码题解

import java.util.*;public class test {static int len = 0;static String str = "";public static void main(String[] args) {Scanner sc = new Scanner(System.in);str = sc.nextLine();// 遍历字符串,找到连续的 "mei" 子串len = str.length();int count = dfs(0,false,0);System.out.println(count);}/*** 深搜* @param index 当前i* @param preDeleted 标前一个是否删除* @param having 拥有mei的数量 遇到m给1,1后遇到e给2..* @return 数量*/private static int dfs(int index, boolean preDeleted, int having) {if (index >= len) {if (having==3) {return 1;}return 0;}if (preDeleted) {//前序删除,所以当前直接跳过不删return calCount(index,having);} else {//删除+不删int tmp = dfs(index + 1, true, having);//删除return calCount(index,having)+tmp;}}/*** 处理状态的转换* @param index* @param having* @return*/private static int calCount(int index, int having) {if ((having==0||having==1||having==2) && str.charAt(index)=='m') {return dfs(index+1,false,1);//遇到m则having置1} else if (having==1 && str.charAt(index)=='e') {return dfs(index+1,false,2);//遇到e则having置2} else if ((having==2 && str.charAt(index)=='i')||having==3) {return dfs(index+1,false,3);//遇到e则having置2} elsereturn dfs(index+1,false,0);//选了其他则having置0}}

相关文章:

【2023美团后端-8】删除字符串的方案,限制不能连续删

小美定义一个字符申是“美丽串”&#xff0c;当且仅当该字符串包含”mei”连续子串。例如”meimei”、“xiaomeichan"都是美丽串&#xff0c;现在小美拿到了一个字符串&#xff0c;她准备删除一些字符&#xff0c;但不能删除两个连续字符。小美希望最终字符串变成美丽串&a…...

蓝桥等考Python组别十七级008

第一部分:选择题 1、Python L17 (15分) 运行下面程序,输出的结果是( )。 def func(x, y): return (x - y) % 2 print(func(10, 5)) 2152.5正确答案:B 2、Python L17 (15分) 运行下面程序,输...

docker安装sql-server数据库,使用navicat实现备份数据库导入

docker安装sql-server&#xff0c;使用navicat实现备份数据库导入 1、docker安装sql-server数据库2、使用navicat连接sql-server3、使用navicat导入备份数据库1、第一步&#xff1a;选择需要备份的数据源2、第二步 &#xff08;选择备份计划&#xff0c;设置还原文件位置信息&a…...

深度学习batch、batch_size、epoch、iteration以及小样本中episode、support set、query set关系

batch、batch_size、epoch、iteration关系&#xff1a; epoch&#xff1a;整个数据集 batch&#xff1a; 整个数据集分成多少小块进行训练 batch_size&#xff1a; 一次训练&#xff08;1 batch&#xff09;需要 batch_size个样本 iteration&#xff1a; 整个数据集需要用b…...

Air001 TIM1高级定时器单脉冲输出模式使用

Air001 TIM1高级定时器单脉冲输出模式使用 ✨本例程基于合宙官方提供的标准库以及Demo工程作为验证参考。&#x1f4cd;官方提供的SDK包资源&#xff1a;https://gitee.com/openLuat/luatos-soc-air001&#x1f33f;想了解STM32高级定时器单脉冲输出模式了解可以参考阅读:https…...

矿机生意难做,比特大陆停发工资

文/章鱼哥 出品/陀螺财经 沉寂了许久的比特大陆&#xff0c;因为一则延迟发薪的公告引起了圈内热议&#xff0c;熊市下&#xff0c;曾经风头无两的比特大陆&#xff0c;现金流也会扛不住吗&#xff1f; 据吴说区块链报道&#xff0c;多名比特大陆内部员工确认&#xff0c;比特大…...

计算机竞赛python区块链实现 - proof of work工作量证明共识算法

文章目录 0 前言1 区块链基础1.1 比特币内部结构1.2 实现的区块链数据结构1.3 注意点1.4 区块链的核心-工作量证明算法1.4.1 拜占庭将军问题1.4.2 解决办法1.4.3 代码实现 2 快速实现一个区块链2.1 什么是区块链2.2 一个完整的快包含什么2.3 什么是挖矿2.4 工作量证明算法&…...

pyqt 划线标注工具,可用于车道线标注

目录 效果图: pyqt代码: opencv划线: 效果图: pyqt代码: import osfrom PyQt5.QtWidgets import QWidget, QApplication, QVBoxLayout, QPushButton, QLabel from PyQt5.QtGui import QPainter, QPen, QColor, QImage, QPixmap from PyQt5.QtCore import Qt, QPoint i…...

蓝桥等考Python组别十七级004

第一部分:选择题 1、Python L17 (15分) 运行下面程序,输出的结果是( )。 def func(x, y): return (x - y) // 2 print(func(10, 4)) 2356正确答案:B 2、Python L17 (15...

计算机毕业设计选什么题目好?springboot 职业技术学院图书管理系统

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…...

外汇天眼:6个常见网络投资诈骗迹象,如发现任何一个,务必小心!

在这个数字时代&#xff0c;随着外汇和加密货币市场的不断发展&#xff0c;网络投资已经成为一种广受欢迎的理财方式。然而&#xff0c;近年来&#xff0c;诈骗犯罪也在不断增加&#xff0c;给社会带来了巨大的财务损失。尽管投资诈骗的手法各式各样&#xff0c;但它们都可以追…...

MyBatis的xml里#{}的参数为null报错、将null作为参数传递报错问题

今天在调试的过程中发现一个bug&#xff0c;把传入的参数写到查询分析器中执行没有问题&#xff0c;但是在程序中执行就报错&#xff1a;org.springframework.jdbc.UncategorizedSQLException : Error setting null parameter. Most JDBC drivers require that the JdbcType m…...

【网络安全】「漏洞原理」(一)SQL 注入漏洞之概念介绍

前言 严正声明&#xff1a;本博文所讨论的技术仅用于研究学习&#xff0c;旨在增强读者的信息安全意识&#xff0c;提高信息安全防护技能&#xff0c;严禁用于非法活动。任何个人、团体、组织不得用于非法目的&#xff0c;违法犯罪必将受到法律的严厉制裁。 【点击此处即可获…...

Go语言错误处理最佳实践

错误处理实践 我们在go语言中设计error的处理体系时候, 一般都会去做下面两点 直接使用errors.New()生成error接口的值 扩展error接口, 并定义扩展error接口的实现类型 error接口是什么? go语言的error是一个接口类型, 其源码如下: type error interface {Error() string…...

python结合excel数据轻松实现接口自动化测试

在刚刚进入测试行业的时候&#xff0c;最开始也是做功能测试&#xff0c;我想很多伙伴和我一样&#xff0c;觉得自动化测试都很高端&#xff0c;很神秘。迫不及待的想去学习作自动化测试。 以前比较常用数据库python做自动化&#xff0c;后面发现excel个人觉得更加适合&#x…...

构建精致 Chrome 插件:开箱即用的 TypeScript 模板 | 开源日报 No.51

tonsky/FiraCode Stars: 72.7k License: OFL-1.1 Fira Code 是一种免费的等宽字体&#xff0c;具有编程连字符。 Fira Code 提供了丰富多样的箭头和标点符号调整功能。Fira Code 支持各种不同的字符变体、风格集和其他字体特性&#xff0c;以满足用户个性化需求。Fira Code …...

在Windows下自己从源码编译Python3.10.13成安装包

文章目录 &#xff08;一&#xff09;Python 3.10 的生命周期&#xff08;一&#xff09;下载源码&#xff08;二&#xff09;准备环境&#xff08;三&#xff09;编译&#xff08;3.1&#xff09;解压源码到目录&#xff08;3.2&#xff09;下载依赖&#xff08;PCBuild&#…...

WIN10如何搭建自己的博客

引言&#xff1a; 路线说明&#xff1a; 在CSDN&#xff0c;博客园&#xff0c;简书等平台&#xff0c;可以直接在上面发表&#xff0c;用户交互做的好&#xff0c;写的文章百度也能搜索的到&#xff0c;这样速度也是最快的&#xff0c;不费心运营啥的。缺点是比较不自由&…...

uniapp 首页制作

uniapp拨打固定的电话 function Hotline() {// 拨打电话uni.makePhoneCall({phoneNumber: 19969547693})}页面跳转 //普通跳转function homepage() {uni.navigateTo({url: /pages/homepage/homepage});}//二、uni.redirectTo关闭当前页面&#xff0c;跳转到应用内的某个页面。…...

意大利航天飞行器公司【Sidereus】完成510万欧元融资

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;位于意大利萨莱诺的航天飞行器公司Sidereus Space Dynamics今日宣布已完成510万欧元融资。 本轮融资由Primo Space和CDP Venture Capital Sgr领投&#xff0c;通过Italia Venture II - Fondo Impr…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全&#xff08;Thread Safety&#xff09; 线程安全是指在多线程环境下&#xff0c;某个函数、类或代码片段能够被多个线程同时调用时&#xff0c;仍能保证数据的一致性和逻辑的正确性&#xf…...

腾讯云V3签名

想要接入腾讯云的Api&#xff0c;必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口&#xff0c;但总是卡在签名这一步&#xff0c;最后放弃选择SDK&#xff0c;这次终于自己代码实现。 可能腾讯云翻新了接口文档&#xff0c;现在阅读起来&#xff0c;清晰了很多&…...

论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving

地址&#xff1a;LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂&#xff0c;正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...

【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道

文/法律实务观察组 在债务重组领域&#xff0c;专业机构的核心价值不仅在于减轻债务数字&#xff0c;更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明&#xff0c;合法债务优化需同步实现三重平衡&#xff1a; 法律刚性&#xff08;债…...

WEB3全栈开发——面试专业技能点P4数据库

一、mysql2 原生驱动及其连接机制 概念介绍 mysql2 是 Node.js 环境中广泛使用的 MySQL 客户端库&#xff0c;基于 mysql 库改进而来&#xff0c;具有更好的性能、Promise 支持、流式查询、二进制数据处理能力等。 主要特点&#xff1a; 支持 Promise / async-await&#xf…...