算法
(暴力)
遍历字符串,记录每个字符第一次出现的位置。当某个字符再次出现时,说明找到了相同的两个字符,那就更新一下最大长度。
C++ 代码
class Solution {
public:
int maxLengthBetweenEqualCharacters(string s) {
int ans = -1;
unordered_map<char, int> pos;
for (int i = 0; i < s.size(); ++i) {
if (auto it = pos.find(s[i]); it != pos.end()) {
ans = max(ans, i - it->second - 1);
}
else pos.insert(make_pair(s[i], i));
}
return ans;
}
};