#include <iostream>
#include <algorithm>
#include "string"
#include "vector"
#include "stack"
#include "set"
#include "queue"
using namespace std;
//bool isPalindrome(string s)
//{
// transform(s.begin(), s.end(), s.begin(), ::tolower);
// int i = 0;
// int j = s.size() - 1;
// while (i <= j)
// {
// if ((s[i] >= 'A'&&s[i] <= 'z') || (s[i] >= '0'&&s[i] <= '9'))
// {
// if ((s[j] >= 'A'&&s[j] <= 'z') || (s[j] >= '0'&&s[j] <= '9'))
// {
// if (s[i] != s[j])
// {
// return false;
// }
// i++;j--;
// }
// else
// j--;
// }
// else
// i++;
// }
// return true;
//}
bool isPalindrome(string s)
{
int i, j;
for (i = 0, j = 0; s[i] != '\0'; i++)
{
if (s[i] >= 'A' && s[i] <= 'Z')
{
s[j++] = s[i] - 'A' + 'a';
}
else if ((s[i] >= 'a' && s[i] <= 'z') || (s[i] >= '0' && s[i] <= '9'))
{
s[j++] = s[i];
}
}
s[j] = '\0';
j--;
for (i = 0; i < j; i++, j--)
{
if (s[i] != s[j])
{
return false;
}
}
return true;
}
int main()
{
cout << isPalindrome("`l;`` 1o1 ??;l`");
system("pause");
return 0;
}