跳到主要内容

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

链接:1624.两个相同字符之间的最长子字符串
难度:Easy
标签:哈希表、字符串
简介:给你一个字符串 s,请你返回 两个相同字符之间的最长子字符串的长度 ,计算长度时不含这两个字符。如果不存在这样的子字符串,返回 -1 。

题解 1 - cpp

  • 编辑时间:2022-09-18
  • 内存消耗:6MB
  • 编程语言:cpp
  • 解法介绍:遍历,数组记录。
#define CNT 26
class Solution {
public:
int maxLengthBetweenEqualCharacters(string s) {
int list[CNT], ans = -1;
memset(list, -1, sizeof(int) * 26);
for (int i = 0; i < s.size(); i++) {
if (list[s[i] - 'a'] != -1) ans = max(ans, i - list[s[i] - 'a'] + 1 - 2);
else list[s[i] - 'a'] = i;
}
return ans;
}
};