#include <iostream>
using namespace std;
// problems for the Palindrone problems
class Solution {
public:
bool isPalindrome(string s) {
int l=0;
int h=s.size()-1;
// Run the loop for the given problems
for(int i=0;i<=h;i++){
s[i]=tolower(s[i]);
// compare the character untill they are equal
while(l<=h){
if(!(s[l]>='a' && s[l]<='z')){
l++;
}
if(!(s[h]>='a' && s[h]<='z')){
h--;
}
else if(s[l]==s[h]){
l++, h--;
}
else{
return false;
}
}
}
// return true if the statement is palindrone
return true;
}
};
int main() {
// your code goes here
Solution s1;
bool Palindrome=s1.isPalindrome("A man, a plan, a canal: Panama");
cout<<Palindrome;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwovLyBwcm9ibGVtcyBmb3IgdGhlIFBhbGluZHJvbmUgcHJvYmxlbXMKY2xhc3MgU29sdXRpb24gewpwdWJsaWM6CiAgICBib29sIGlzUGFsaW5kcm9tZShzdHJpbmcgcykgewogICAgICAgIGludCBsPTA7IAogICAgICAgIGludCBoPXMuc2l6ZSgpLTE7CiAgICAgICAgLy8gUnVuIHRoZSBsb29wIGZvciB0aGUgZ2l2ZW4gcHJvYmxlbXMKICAgICAgICBmb3IoaW50IGk9MDtpPD1oO2krKyl7CiAgICAgICAgCXNbaV09dG9sb3dlcihzW2ldKTsKICAgICAgICAKICAgICAgICAvLyBjb21wYXJlIHRoZSBjaGFyYWN0ZXIgdW50aWxsIHRoZXkgYXJlIGVxdWFsCiAgICAgICAgd2hpbGUobDw9aCl7CiAgICAgICAgaWYoIShzW2xdPj0nYScgJiYgc1tsXTw9J3onKSl7CiAgICAgICAgCWwrKzsKICAgICAgICB9CiAgICAgICAgaWYoIShzW2hdPj0nYScgJiYgc1toXTw9J3onKSl7CiAgICAgICAgCWgtLTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZihzW2xdPT1zW2hdKXsKICAgICAgICAJbCsrLCBoLS07CiAgICAgICAgfQogICAgICAgIGVsc2V7CiAgICAgICAgCXJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgCiAgICB9CiAgICAgICAgfQogICAgLy8gcmV0dXJuIHRydWUgaWYgdGhlIHN0YXRlbWVudCBpcyBwYWxpbmRyb25lCiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgCiAgICB9Cn07CgppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCVNvbHV0aW9uIHMxOwoJYm9vbCBQYWxpbmRyb21lPXMxLmlzUGFsaW5kcm9tZSgiQSBtYW4sIGEgcGxhbiwgYSBjYW5hbDogUGFuYW1hIik7Cgljb3V0PDxQYWxpbmRyb21lOwoJCglyZXR1cm4gMDsKfQ==