序
本文主要记录一下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 <= 300s 只含小写英文字母来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/largest-substring-between-two-equal-characters著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题解
class Solution { public int maxLengthBetweenEqualCharacters(String s) { Map map = new HashMap<>(); int result = -1; for (int i = 0; i
小结
这里用HashMap记录一下每个字符的下标,在遍历字符串的时候,遇到相同的字符的时候,计算前后下标的差来得出子字符串的长度,然后通过对比记录最长的子字符串的长度。
doc
- 两个相同字符之间的最长子字符串