Simple Solution in C++, non-DP


#1

bool check_vectors(vector &A, vector &B){
if(A.size()<=1 || B.size()<=1){
return false;
}
if(A.size()>=3 || B.size()>=3){
return true;
}
if(A[0]>B[0]){
if(A[1]>B[1]){
return true;
}
}
if(A[0]<B[0]){
if(A[1]<B[1]){
return true;
}
}
return false;
}

int Solution::anytwo(string A) {
unordered_map <char,vector> umap;
int i,j,k;
for(i=0;i<A.size();i++){
umap[A[i]].push_back(i);
}
for(auto x: umap){
for(auto y: umap){
if(x==y){
if(x.second.size()>=3){
return 1;
}
}
else if(x!=y){
bool truth=check_vectors(x.second,y.second);
if(truth==true){
return 1;
}
}
}
}
return 0;
}