Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.39 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. bool is_palindrome(string input_string, int numOfSlots) { // check whether it's a palindrome
  7.    
  8.     int midpoint = numOfSlots / 2;
  9.    
  10.     for(int i = 0; i < midpoint; i++) {
  11.        
  12.         if(input_string[i] != input_string[(i-numOfSlots+1)*-1]) {
  13.             return false;
  14.         }
  15.     }
  16.     return true;
  17. }
  18.  
  19. string normalize(string original_string) { // delete everything except A-Z/a-z, replace A-Z to a-z
  20.     string temp_string;
  21.    
  22.     for(int i=0; i < original_string.size(); i++) { // check every character one by one
  23.         if(original_string[i] >= 'A' && original_string[i] <= 'z') { // A-Z,a-z
  24.             if(original_string[i] >= 'A' && original_string[i] <= 'Z') { // A-Z
  25.                 temp_string += ((char)(original_string[i] + 'a' - 'A')); // convert to a-z
  26.             } else { // a-z
  27.                 temp_string += ((char)(original_string[i])); // directly include as a-z
  28.             }
  29.         } // else nothing happens
  30.     }
  31.     return temp_string;
  32. }
  33.  
  34. int main() {
  35.     string original_string, normalized_string;
  36.  
  37.     getline(cin, original_string); // get user input
  38.    
  39.     normalized_string = normalize(original_string); // delete everything except A-Z/a-z, replace A-Z to a-z
  40.    
  41.     if(is_palindrome(normalized_string, normalized_string.size())) // check whether it's a palindrome
  42.         cout << "Yes";
  43.     else
  44.         cout << "No";
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement