LeetCode简单题之两个相同字符之间的最长子字符串
题目
给你一个字符串 s,请你返回 两个相同字符之间的最长子字符串的长度 ,计算长度时不含这两个字符。如果不存在这样的子字符串,返回 -1 。
子字符串 是字符串中的一个连续字符序列。
示例 1:
输入:s = “aa”
输出:0
解释:最优的子字符串是两个 ‘a’ 之间的空子字符串。
示例 2:
输入:s = “abca”
输出:2
解释:最优的子字符串是 “bc” 。
示例 3:
输入:s = “cbzxy”
输出:-1
解释:s 中不存在出现出现两次的字符,所以返回 -1 。
示例 4:
输入:s = “cabbac”
输出:4
解释:最优的子字符串是 “abba” ,其他的非最优解包括 “bb” 和 “” 。
提示:
1 <= s.length <= 300
s 只含小写英文字母
来源:力扣(LeetCode)
解题思路
这个题可以从字符频率下手。统计字符的频率,如果频率大于等于2,那么说明,在这个字符中间可能存在子字符串;如果频率恰恰等于2,那么其生成的字串只有一个,如果超过2那么就会有多个字串,但最长的字串就是第一个出现的位置和最后一个出现的位置之间的字串,所以我们可以从两头开始搜索相同字符的位置,并计算当前最长字串的长度。
class Solution:def maxLengthBetweenEqualCharacters(self, s: str) -> int:freq=Counter(s)MAX=-1for i,j in freq.items():if j>1:left=s.index(i) #第一次出现的位置right=len(s)-s[::-1].index(i)-1#最后一次出现的位置if right-left-1>MAX: #最长字串长度更新MAX=right-left-1return MAX
LeetCode简单题之两个相同字符之间的最长子字符串相关推荐
- 【LeetCode刷题】1624. 两个相同字符之间的最长子字符串
给你一个字符串 s,请你返回 两个相同字符之间的最长子字符串的长度 ,计算长度时不含这两个字符.如果不存在这样的子字符串,返回 -1 . 子字符串 是字符串中的一个连续字符序列. 示例 1: 输入:s ...
- LeetCode 1624. 两个相同字符之间的最长子字符串
文章目录 1. 题目 2. 解题 1. 题目 给你一个字符串 s,请你返回 两个相同字符之间的最长子字符串的长度 ,计算长度时不含这两个字符.如果不存在这样的子字符串,返回 -1 . 子字符串 是字符 ...
- LeetCode简单题之两数之和
题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组 ...
- LeetCode简单题之生成每种字符都是奇数个的字符串
题目 给你一个整数 n,请你返回一个含 n 个字符的字符串,其中每种字符在该字符串中都恰好出现 奇数次 . 返回的字符串必须只含小写英文字母.如果存在多个满足题目要求的字符串,则返回其中任意一个即可. ...
- LeetCode简单题之两个数对之间的最大乘积差
题目 两个数对 (a, b) 和 (c, d) 之间的 乘积差 定义为 (a * b) - (c * d) . 例如,(5, 6) 和 (2, 7) 之间的乘积差是 (5 * 6) - (2 * 7) ...
- LeetCode简单题之两数之和 IV - 输入 BST
题目 给定一个二叉搜索树 root 和一个目标结果 k,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true. 示例 1: 输入: root = [5,3,6,2,4,null, ...
- LeetCode简单题之两个列表的最小索引总和
题目 假设 Andy 和 Doris 想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示. 你需要帮助他们用最少的索引和找出他们共同喜爱的餐厅. 如果答案不止一个 ...
- LeetCode简单题之数组中的字符串匹配
题目 给你一个字符串数组 words ,数组中的每个字符串都可以看作是一个单词.请你按 任意 顺序返回 words 中是其他单词的子字符串的所有单词. 如果你可以删除 words[j] 最左侧和/或最 ...
- LeetCode简单题之两栋颜色不同且距离最远的房子
题目 街上有 n 栋房子整齐地排成一列,每栋房子都粉刷上了漂亮的颜色.给你一个下标从 0 开始且长度为 n 的整数数组 colors ,其中 colors[i] 表示第 i 栋房子的颜色. 返回 两栋 ...
最新文章
- 开放下载!《阿里巴巴大数据及AI实战》深度解析典型场景大数据实践
- 软件开发计划_敏捷软件开发实践:估算与计划读书笔记113第11章 确定渴望度优先级...
- 错误传播 --try{}catch(e){console.log(e)}
- WPF中用于嵌入其他进程窗口的自定义控件(AppContainer)
- HDU - 4370 0 or 1(思维+最短路)
- Linux基础入门学习笔记之二
- 美团外卖客户端高可用建设体系
- 游戏开发之类和对象的基本概念(C++基础)
- 5个提高效率的编程工作环境
- chipgenius芯片精灵v4|chipgenius芯片精灵 usb检测工具绿色版v4.00.1024下载
- 服务器搬迁方案_网站云服务器迁移方案需要注意什么?
- (数据结构)树的深度/高度
- java web 甘特图_基于Web开发的甘特图控件,支持Java、.Net
- 【硬件】在Windows PC端使用adb工具无线向电视机顶盒安装第三方软件(不需要ROOT,已解决)
- css 上中下三行布局 4种方式
- NB-IoT低功耗技术与寻呼
- 移动端:苹果开发者账号Apple Developer Program
- 1.16 常用电平标准(TTL、CMOS、LVTTL、LVCMOS、ECL、PECL、LVPECL)
- 【JAVA】生产者消费者模式
- Kids and COVID: why young immune systems are still on top