#include <bits/stdc++.h>
using namespace std;
#include <chrono>
#ifndef mehul
#pragma GCC optimize("Ofast")
#endif
typedef long long ll;
typedef unordered_map<int, int> umapii;
typedef unordered_map<int, bool> umapib;
typedef unordered_map<string, int> umapsi;
typedef unordered_map<string, string> umapss;
typedef map<string, int> mapsi;
typedef map<pair<int, int>, int> mappiii;
typedef map<int, int> mapii;
typedef pair<int, int> pii;
typedef pair<long long, long long> pll;
typedef unordered_set<int> useti;
#define debug(x) cout << '>' << #x << ':' << x << endl;
#define uset unordered_set
#define it iterator
#define mp make_pair
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define f first
#define s second
#define INF 4557430888798830399ll
#define MOD 1000000007
#define EPS 1e-7
#define PI acos(-1)
#define sz(x) (int)(x).size()
#define fr(i, a, b) for (int i = (a), _b = (b); i <= _b; i++)
#define rep(i, n) for (int i = 0, _n = (n); i < _n; i++)
#define repr(i, n) for (int i = n; i >= 0; i--)
#define frr(i, a, b) for (int i = (a), _b = (b); i >= _b; i--)
#define trav(a, x) for(auto& a : x)
#define fil(ar, val) memset(ar, val, sizeof(ar)) // 0x3f for inf, 0x80 for -INF can also use with pairs
// A function to check if a string str is palindrome
bool isPalindrome(string str, int l, int h)
{
// l and h are leftmost and rightmost corners of str
// Keep comparing characters while they are same
while (h > l)
if (str[l++] != str[h--])
return false;
return true;
}
int Solution::anytwo(string A) {
//Remove the non repeating characters and check if the remaining string is a palindrome
//If Palindrome ----> Return 0 (But check for special case like "AAAAA")
//Else----> Return 1;
unordered_map<char, int> m1;
rep(i, A.size()){
m1[A[i]]++;
if(m1[A[i]]>2)
return 1;
}
string s;
trav(c, A){
if (m1[c]>1)
{
s+=c;
}
}
if (isPalindrome(s, 0, s.size()-1))
{
//Odd length -----> Special Case (eg "AAAAA")----->Palindrome but hasRepeats
if (s.size() & 1)
return s[s.size()/2] == s[s.size()/2 - 1];
// return false if string is a palindrome
return false;
}
return true;
}