【算法】算法题-20231117

这里写目录标题

  • 一、搜索插入位置(35)
  • 二、字符串相乘(43)
  • 三、两个相同字符之间的最长子字符串(1624)
  • 四、给你一个 有效括号字符串 s,返回该字符串的 s 嵌套深度

一、搜索插入位置(35)

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
请必须使用时间复杂度为 O(log n) 的算法。

示例 1:
输入: nums = [1,3,5,6], target = 5
输出: 2

示例 2:
输入: nums = [1,3,5,6], target = 2
输出: 1

示例 3:
输入: nums = [1,3,5,6], target = 7
输出: 4

def erfen_search_insert(nums, target):left = 0right = len(nums) - 1while left <= right:mid = (right + left) // 2if nums[mid] == target:return midelif nums[mid] > target:right = mid - 1else:left = mid + 1return left

二、字符串相乘(43)

给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。
注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。

示例 1:
输入: num1 = “2”, num2 = “3”
输出: “6”

示例 2:
输入: num1 = “123”, num2 = “456”
输出: “56088”

def test11(nums1, nums2):res = 0for i, v in enumerate(nums1[::-1]):for j, u in enumerate(nums2[::-1]):res += int(v) * int(u) * (10 ** (i + j))return str(res)res = test11('123', '456')
print(res)

三、两个相同字符之间的最长子字符串(1624)

给你一个字符串 s,请你返回 两个相同字符之间的最长子字符串的长度 ,
计算长度时不含这两个字符。如果不存在这样的子字符串,返回 -1 。

子字符串 是字符串中的一个连续字符序列。

示例 1:
输入:s = “aa”
输出:0
解释:最优的子字符串是两个 ‘a’ 之间的空子字符串。

示例 2:
输入:s = “abca”
输出:2
解释:最优的子字符串是 “bc” 。

示例 3:
输入:s = “cbzxy”
输出:-1
解释:s 中不存在出现出现两次的字符,所以返回 -1 。

示例 4:
输入:s = “cabbac”
输出:4
解释:最优的子字符串是 “abba” ,其他的非最优解包括 “bb” 和 “” 。

思路:
遍历所有的字符
当这个字符在字符串中出现两次时,计算第一个索引和最后一个索引中间的子字符串的数量

def max_value(strs):n=-1for i in set(strs):if strs.count(i)>1:n=max(n,strs.rfind(i)-strs.find(i)-1)return n
s = "cabbac"
r=max_value(s)
print(r)

四、给你一个 有效括号字符串 s,返回该字符串的 s 嵌套深度

例如:“”、“()()”、“()(()())” 都是 有效括号字符串(嵌套深度分别为 0、1、2),而 “)(” 、“(()” 都不是 有效括号字符串 。
给你一个 有效括号字符串 s,返回该字符串的 s 嵌套深度

示例 1:
输入:s = “(1+(2*3)+((8)/4))+1”
输出:3
解释:数字 8 在嵌套的 3 层括号中。
示例 2:
输入:s = “(1)+((2))+(((3)))”
输出:3

思路:
python 栈思想
核心思路其实就是统计最大的连续左括号的数量。
遍历整个字符串,遇到左括号,总数+1,遇到右括号总数-1。
实时更新最大连续左括号的数量。

def test(strs):res=0ret=0for i in strs:if i =="(":ret+=1res=max(ret,res)elif i==")":ret-=1return res
s = "(1)+((2))+(((3)))"
r=test(s)
print(r)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/145064.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux高级篇基础理论二(详细文档、LAMP、SHELL、sed正则表达式)

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a; 小刘主页 ♥️不能因为人生的道路坎坷,就使自己的身躯变得弯曲;不能因为生活的历程漫长,就使求索的 脚步迟缓。 ♥️学习两年总结出的运维经验&#xff0c;以及思科模拟器全套网络实验教程。专栏&#xff1a;云计算技…

C#委托与事件

在C#中&#xff0c;委托&#xff08;Delegates&#xff09;和事件&#xff08;Events&#xff09;是用于实现事件驱动编程的关键组件。 委托&#xff08;Delegates&#xff09; 委托是一种特殊的类型&#xff0c;它定义了方法的签名&#xff08;即方法的返回类型和参数类型&a…

layui的layer.confirm获取按钮焦点

因为ayer.confirm的按钮并非采用button&#xff0c;而是a标签&#xff0c;所以获取按钮焦点获取不到&#xff0c;要采用别的方法&#xff0c;下面介绍在ie11中和ie8中不同的写法 在ie11中 layer.confirm(确定取消这个弹窗吗&#xff1f;,{btn: [确定, 取消],success:function…

海康Visionmaster-环境配置:VB.Net 二次开发环境配 置方法

Visual Basic 进行 VM 二次开发的环境配置分为三步。 第一步&#xff0c;使用 VS 新建一个框架为.NET Framework 4.6.1&#xff0c;平台去勾选首选 32 为的工程&#xff0c;重新生成解决方案&#xff0c;保证工程 Debug 下存在 exe 文件&#xff0c;最后关闭新建工程&#xff1…

按键精灵中的日志、分辨率、找色逻辑、线程

1. 开启输出日志 // 开启日志 Log.Open TracePrint "你好"TracePrint "世界"// 关闭日志 Log.Close // 输出日志 TracePrint GetTempDir()// 当前脚本第4行&#xff1a;你好 // 当前脚本第6行&#xff1a;世界2. 设置分辨率 在写脚本的时候&#xff0c…

【MATLAB源码-第79期】基于蚯蚓优化算法(EOA)的栅格路径规划,输出做短路径图和适应度曲线。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 蚯蚓优化算法&#xff08;Earthworm Optimisation Algorithm, EOA&#xff09;是一种启发式算法&#xff0c;灵感来源于蚯蚓在自然界中的行为模式。蚯蚓优化算法主要模仿了蚯蚓在寻找食物和逃避天敌时的行为策略。以下是蚯蚓…

【Android】使用XML资源文件存储配置项:降低代码耦合性并提高可重用性

前言 在Android开发中&#xff0c;我们经常需要存储一些配置项。 例如在创建Retrofit实例时&#xff0c;需要指定baseUrl。如果需要修改替换整个项目中的baseUrl&#xff0c;那将会是一件很痛苦的事情。 为了方便管理和维护这些配置项&#xff0c;我们可以使用资源文件来存储…

ubuntu 无法获得锁的解决

在输入sudo apt-get update后发现终端提示&#xff1a; E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用) E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it? 解决方案一&#xff1a; 先找…

【Kingbase FlySync】命令行:同步软件安装部署,并实现KES到KES实现同步迁移

概述 Kingbase FlySync是面向同城/异地灾备、数据库平滑升级替换、数据集中共享与分发、应用上云迁移、数据库负载均衡等场景的数据同步产品。该产品基于增量日志解析技术&#xff0c;性能高、时延低、资源占用极少&#xff0c;能够实现异构数据源之间大规模增量数据的任意方向…

破解tomcat密码并上传webshell

tomcat基础认证爆破 暴力破解 进入vulnhub的tomcat8目录&#xff0c;启动环境 由于tomcat密码默认最大尝试错误次数为5次&#xff0c;需要修改server.xml&#xff0c;修改下面字段 failureCount"10000000000" lockOutTime"0"tomcat默认界面&#xff0c;…

Skywalking流程分析_8(拦截器插件的加载)

前言 在之前的文章中我们将&#xff0c;静态方法、构造方法、实例方法的增强逻辑都分析完毕&#xff0c;但在增强前&#xff0c;对于拦截类的加载是至关重要的&#xff0c;下面我们就来详细的分析 增强插件的加载 静态方法增强前的加载 //clazz 要修改的字节码的原生类 Sta…

实用篇-ES-RestClient查询文档

一、快速入门 上面的查询文档都是依赖kibana&#xff0c;在浏览器页面使用DSL语句去查询es&#xff0c;如何用java去查询es里面的文档(数据)呢 我们通过match_all查询来演示基本的API&#xff0c;注意下面演示的是 match_all查询&#xff0c;也叫基础查询 首先保证你已经做好了…

【flutter】使用getx下的GetMaterialApp创建路由和使用时间选择器国际化问题

GetMaterialApp是啥 网上解释说是 MaterialApp Getx properties GetMaterialApp 问题 在使用showDateRangePicker组件的时候&#xff0c; 一直报错 No MaterialLocalizations found 我就愁思是不是GetMaterialApp跟MaterialApp方法不一样的问题&#xff0c;结果不是&#…

Spark数据倾斜_产生原因及定位处理办法_生产环境

在最近的项目中&#xff0c;历史和实时数据进行关联平滑时出现了数据倾斜&#xff0c;产生了笛卡尔积&#xff0c;具体现象如下&#xff1a;运行内存175GB&#xff0c;核数64&#xff0c;运行代码时&#xff0c;查看SparkUI界面的active jobs &#xff0c;数据输入是1G&#xf…

java初探之代理模式

代理模式 代理模式一般有三种角色&#xff1a; 没有使用代理模式的话可能就会直接去操作真实的对象 加入代理模式就是加入了 隔离 把我们的真实对象与调用者隔离了一下(代理对象) 代理对象的好处&#xff1f; 使用者(client)跟真实的对象是没有直接的交集的。不会直接操作到…

Bash openldap同步AD组织数据

将AD的ou同步到openldap&#xff08;可支持全量同步和增量同步&#xff09; 整体思路如下&#xff1a; 从ad导出所有的数据&#xff0c;然后进行参数替换以及处理&#xff0c;处理后的文件称为A&#xff1b;从openldap导出所有的数据&#xff0c;然后进行参数替换以及处理&am…

国内crm解决方案的主要提供商有哪些?对比7家

目前国内CRM服务商1410家&#xff0c;今年1-7月CRM服务商新注册19家。如何从众多服务商中挑选出合适的一家&#xff0c;无疑是一项耗时耗力的大工程。为此&#xff0c;本文将为根据国内外知名机构、媒体、网站发布、百度指数、行业知名度等维度考量&#xff0c;选择出7大CRM系统…

Go语言常用库

Go语言常用库 文本主要介绍Go常用的一些系统库&#xff1a; sort、math、copy、strconv、crypto 1、sort package mainimport ("fmt""sort" )// sort // int排序 // sort.Ints([]int{}) // 字符串排序 // sort.Strings([]string{}) // 自定义排序 // s…

【Proteus仿真】【51单片机】锂电池管理系统

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真51单片机控制器&#xff0c;使用LCD1602显示模块、DS18B20温度传感器、PCF8691 ADC模块、按键、LED蜂鸣器模块等。 主要功能&#xff1a; 系统运行后&#xff0c;LCD1602显示温度…

MFC保存窗口客户区为图片

首先的窗口输出一些内容&#xff1b; 菜单单击函数代码&#xff1b; void CgetmypicView::OnTestGetmypic() {// TODO: 在此添加命令处理程序代码HWND hwnd this->GetSafeHwnd();HDC hDC ::GetWindowDC(hwnd);//获取DC RECT rect;::GetClientRect(hwnd, &rect)…