双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

力扣1624. 两个相同字符之间的最长子字符串

知识浅谈 知识浅谈 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

题意

给你一个字符串 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 只含小写英文字母

题解

class Solution {
    public int maxLengthBetweenEqualCharacters(String s) {
        Map<Character,Integer>map = new HashMap<Character,Integer>();
        char[] chs = s.toCharArray();
        int max1=-1;
        int len = chs.length;
        for(int i=0;i<len;i++){
            if(map.containsKey(chs[i])){
                max1 = Math.max(max1,i-map.get(chs[i])-1);
            }
            else map.put(chs[i],i);
        }
        return max1;
    }
}
...全文

相关推荐

leetcode #3 无重复字符的最长子串(C)

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: “abcabcbb” 输出: 3  解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters       一上来没啥思路,好久不做题了,脑袋都不大好使了;瞎想了半天,有个差不多的思路,在纸上画的明明白白,但是一写代码,各种小问题,删删改改的记录一下吧。好久没发博客了。感觉用c做题还是不那么方便,c++好多

weixin_38663007

力扣之无重复字符的最长子串

问题 解答 1.暴力解法 算法 创建allUnique函数,如果子字符串中的字符都是唯一的,它会返回 True,否则会返回 False。遍历字符串 s 的所有可能的子字符串,更新子串长度的最大值。 时间复杂度:O(N^3) public class Solution { public int lengthOfLongestSubstring(String s) { int n = s.Length; int ans = 0; for (int i = 0; i &lt; n; i++) { for (int j = i + 1; j &lt;

weixin_38557980

leetcode题目分类

这份文档列出了leetcode几乎所有题目(大约134题)的分类以及难度指示,是刷leetcode的必备良品。现在leetcode总的题目数已经达到150题,所以有部分题目没有包含在这个文档中,但是——足够了。po主刷leetcode的时候参照了这份文档中的难度分级,从1开始刷到5,最终刷完150题。当然里面的题目难度分级对每个人来说都有一些不准确,因为不同人擅长的题目类型不同,但是即便这样也具有一定的指导意义。 找到这份东西也不容易,所以就盛惠1分~哈哈~

诚实的偷包贼

LeetCode刷题笔记——#3. 无重复字符的最长子串

难度:中等 一、题目描述: 二、解题分析:   用字典简历哈希表,当出现重复字符时,更新该字符所在索引和子串起始索引。 ###### leetcode 代码主体 ###### class Solution: def lengthOfLongestSubstring(self, s: str) -> int: start = -1 max_len = 0 d = {} # 對每個字元 for i in range(len(s)): # 檢查字元是否第一次出現 和 位置是否大於指針

weixin_38565801

寻找字符串中不包含重复字符的最长子串

在字符串中找到最长的不包含重复字符的子串,返回其长度

王汝鑫
评论
收藏 已收藏
分享
返回顶部
知识浅谈
知识浅谈 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
知识浅谈(万道面试题) 19,931 成员 99 内容