Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <string>
- #include <iostream>
- class palindrome_Checker {
- public:
- palindrome_Checker() {
- Current_string = "no string currently set";
- }
- std::string Get_string() {
- return Current_string;
- }
- void Set_string(std::string newWord) {
- Current_string.clear();
- Current_string.resize(newWord.size());
- for (unsigned long long int i = 0; i < (unsigned long long int)Current_string.size(); i = i + 1) {
- Current_string[i] = newWord[i];
- }
- }
- std::string Current_string;
- bool Is_Palindrome;
- bool StringHasSpace(std::string Current_string) {
- for (unsigned long long int i = 0; i < (unsigned long long int)Current_string.size(); i = i+1) {
- if (Current_string[i] == ' ') {
- return true;
- }
- }
- return false;
- }
- std::string removeFirstSpace(std::string Current_string) {
- std::string New_String = "";
- for (unsigned long long int i = 0; i < (unsigned long long int)Current_string.size(); i = i+1) {
- if (Current_string[i] == ' ') {
- for (int j = i+1; j < (signed)Current_string.size(); j= j+ 1) { New_String += Current_string[j]; }
- break;
- } else {
- New_String += Current_string[i];
- }
- }
- return New_String;
- }
- int GetFirstCapitalLetterPosition(std::string Current_string) {
- for (unsigned long long int i = 0; i < (unsigned long long int)Current_string.size(); i = i+1) {
- if (Current_string[i] == 'A' || Current_string[i] == 'B' || Current_string[i] == 'C' || Current_string[i] == 'D' || Current_string[i] == 'E' || Current_string[i] == 'F' || Current_string[i] == 'G' || Current_string[i] == 'H' || Current_string[i] == 'I' || Current_string[i] == 'J' || Current_string[i] == 'K' || Current_string[i] == 'L' || Current_string[i] == 'M' || Current_string[i] == 'N' || Current_string[i] == 'O' || Current_string[i] == 'P' || Current_string[i] == 'Q' || Current_string[i] == 'R' || Current_string[i] == 'S' || Current_string[i] == 'T' || Current_string[i] == 'U' || Current_string[i] == 'V' || Current_string[i] == 'W' || Current_string[i] == 'X' || Current_string[i] == 'Y' || Current_string[i] == 'Z' || false) {
- return i;
- }
- }
- return -1;
- }
- char ConvertToLowerCase(char Current_char) {
- if (Current_char == 'A') {
- return 'a';
- }
- if (Current_char == 'B') {
- return 'b';
- }
- if (Current_char == 'C') {
- return 'c';
- }
- if (Current_char == 'D') {
- return 'd';
- }
- if (Current_char == 'E') {
- return 'e';
- }
- if (Current_char == 'F') {
- return 'f';
- }
- if (Current_char == 'G') {
- return 'g';
- }
- if (Current_char == 'H') {
- return 'h';
- }
- if (Current_char == 'I') {
- return 'i';
- }
- if (Current_char == 'J') {
- return 'j';
- }
- if (Current_char == 'K') {
- return 'k';
- }
- if (Current_char == 'L') {
- return 'l';
- }
- if (Current_char == 'M') {
- return 'm';
- }
- if (Current_char == 'N') {
- return 'n';
- }
- if (Current_char == 'O') {
- return 'o';
- }
- if (Current_char == 'P') {
- return 'p';
- }
- if (Current_char == 'Q') {
- return 'q';
- }
- if (Current_char == 'R') {
- return 'r';
- }
- if (Current_char == 'S') {
- return 's';
- }
- if (Current_char == 'T') {
- return 't';
- }
- if (Current_char == 'U') {
- return 'u';
- }
- if (Current_char == 'V') {
- return 'v';
- }
- if (Current_char == 'W') {
- return 'w';
- }
- if (Current_char == 'X') {
- return 'x';
- }
- if (Current_char == 'Y') {
- return 'y';
- }
- if (Current_char == 'Z') {
- return 'z';
- }
- return Current_char;
- }
- void DetermineIfPalindrome() {
- if (StringHasSpace(Current_string)) {
- while (1 > 0) {
- if (StringHasSpace(Current_string)) {
- Current_string = removeFirstSpace(Current_string);
- } else {
- break;
- }
- }
- }
- if (GetFirstCapitalLetterPosition(Current_string) != -1) {
- while (1 > 0) {
- Current_string[GetFirstCapitalLetterPosition(Current_string)] = ConvertToLowerCase(Current_string[GetFirstCapitalLetterPosition(Current_string)]);
- if (!StringHasSpace(Current_string)) {
- break;
- }
- }
- }
- if (Current_string.size() == 0) {
- Is_Palindrome = true;
- }
- if (Current_string.size() == 1) {
- Is_Palindrome = 1;
- }
- if (Current_string.size() > 1) {
- if (Current_string[0] == Current_string[Current_string.size() - 1]) {
- std::string Current_string_NEW = "";
- for (long int i = 1; i < (long int)Current_string.size() - 1; ++i) {
- Current_string_NEW += Current_string.at(i);
- }
- Current_string = Current_string_NEW;
- DetermineIfPalindrome();
- } else {
- Is_Palindrome = 0;
- }
- }
- }
- bool SeeIfItIsPalindrome() {
- return Is_Palindrome == true;
- }
- bool is_palindrome(std::string target) {
- Set_string(target);
- Is_Palindrome = false;
- DetermineIfPalindrome();
- return SeeIfItIsPalindrome();
- }
- };
- int main() {
- std::string s;
- std::getline(std::cin, s);
- palindrome_Checker p;
- std::cout << p.is_palindrome(s) << std::endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement