思路
1、利用 hash 表进行判断, 对于与一个字符串,将字符串中的所有字符都加入 hash 中
2、判断一个字符的大小写是否同时出现在字符串中,利用大小写的ASCII值差异性,判断大小写的情况
class Solution {
public:
bool check(string s){
set<char> dic;
for(auto c:s) dic.insert(c);
for(auto c:s){
if(c>='a' && c<='z' && dic.count(char(c-32))==0) return false;
else if(c>='A' && c<='Z' && dic.count(char(c+32))==0) return false;
}
return true;
}
string longestNiceSubstring(string s) {
int n = s.size();
string res="";
for(int i=0;i<n;i++){
for(int j=n-1;j>=i;j--){
if(check(s.substr(i, j-i+1)) && res.size()<s.substr(i, j-i+1).size())
res = s.substr(i, j-i+1);
}
}
return res;
}
};