Write a program to check if a sentence is palindrome or not. You can ignore white spaces and other characters to consider sentence as a palindrome.
Examples:
Input : str = "Too hot to hoot." Output : Sentence is palindrome. Input : str = "Abc def ghi jklm." Output : Sentence is not palindrome.
Note that there may be multiple spaces and/or dots between two words.
To find if a sentence is palindrome, compare each character from left and right. If they are equal, compare until left and right of string are equal or right becomes less then left. Remember to ignore white spaces and other characters in a string.
C++
// CPP program to find if a sentence is // palindrome #include <bits/stdc++.h> using namespace std; // To check sentence is palindrome or not bool sentencePalindrome(string str) { int l = 0, h = str.length(); // Lowercase string for ( int i = 0; i < h; i++) str[i] = tolower (str[i]); // Compares character until they are equal while (l <= h) { // If there is another symbol in left // of sentence if (!(str[l] >= 'a' && str[l] <= 'z' )) l++; // If there is another symbol in right // of sentence else if (!(str[h] >= 'a' && str[h] <= 'z' )) h--; // If characters are equal else if (str[l] == str[h]) l++, h--; // If characters are not equal then // sentence is not palindrome else return false ; } // Returns true if sentence is palindrome return true ; } // Driver program to test sentencePalindrome() int main() { string str = "Too hot to hoot." ; if (sentencePalindrome(str)) cout << "Sentence is palindrome." ; else cout << "Sentence is not palindrome." ; return 0; } |
Java
// Java program to find if a sentence is // palindrome public class GFG { // To check sentence is palindrome or not static boolean sentencePalindrome(String str) { int l = 0 ; int h = str.length()- 1 ; // Lowercase string str = str.toLowerCase(); // Compares character until they are equal while (l <= h) { char getAtl = str.charAt(l); char getAth = str.charAt(h); // If there is another symbol in left // of sentence if (!(getAtl >= 'a' && getAtl <= 'z' )) l++; // If there is another symbol in right // of sentence else if (!(getAth >= 'a' && getAth <= 'z' )) h--; // If characters are equal else if ( getAtl == getAth) { l++; h--; } // If characters are not equal then // sentence is not palindrome else return false ; } // Returns true if sentence is palindrome return true ; } // Driver program to test sentencePallindrome() public static void main(String[] args) { String str = "Too hot to hoot." ; if ( sentencePalindrome(str)) System.out.println( "Sentence is palindrome" ); else System.out.println( "Sentence is not" + " " + "palindrome" ); } } //This code is contributed by Sumit Ghosh |
Python
# Python program to find if a sentence is # palindrome # To check sentence is palindrome or not def sentencePalindrome(s): l, h = 0 , len (s) - 1 # Lowercase string s = s.lower() # Compares character until they are equal while (l < = h): # If there is another symbol in left # of sentence if ( not (s[l] > = 'a' and s[l] < = 'z' )): l + = 1 # If there is another symbol in right # of sentence elif ( not (s[h] > = 'a' and s[h] < = 'z' )): h - = 1 # If characters are equal elif (s[l] = = s[h]): l + = 1 h - = 1 # If characters are not equal then # sentence is not palindrome else : return False # Returns true if sentence is palindrome return True # Driver program to test sentencePalindrome() s = "Too hot to hoot." if (sentencePalindrome(s)): print "Sentence is palindrome." else : print "Sentence is not palindrome." # This code is contributed by Sachin Bisht |
C#
// C# program to find if a // sentence is palindrome using System; public class GFG { // To check sentence is // palindrome or not static bool sentencePalindrome(String str) { int l = 0; int h = str.Length - 1; // Lowercase string str = str.ToLower(); // Compares character until // they are equal while (l <= h) { char getAtl = str[l]; char getAth = str[h]; // If there is another symbol // in left of sentence if (!(getAtl >= 'a' && getAtl <= 'z' )) l++; // If there is another symbol // in right of sentence else if (! (getAth >= 'a' && getAth <= 'z' )) h--; // If characters are equal else if ( getAtl == getAth) { l++; h--; } // If characters are not equal then // sentence is not palindrome else return false ; } // Returns true if sentence // is palindrome return true ; } // Driver Code public static void Main() { String str = "Too hot to hoot." ; if ( sentencePalindrome(str)) Console.Write( "Sentence is palindrome" ); else Console.Write( "Sentence is not" + " " + "palindrome" ); } } // This code is contributed by Nitin Mittal. |
PHP
<?php // PHP program to find if a sentence is // palindrome // To check sentence is palindrome or not function sentencePalindrome( $str ) { $l = 0; $h = strlen ( $str )-1; // Lowercase string for ( $i = 0; $i < $h ; $i ++) $str [ $i ] = strtolower ( $str [ $i ]); // Compares character until they are equal while ( $l <= $h ) { // If there is another symbol in left // of sentence if (!( $str [ $l ] >= 'a' && $str [ $l ] <= 'z' )) $l ++; // If there is another symbol in right // of sentence else if (!( $str [ $h ] >= 'a' && $str [ $h ] <= 'z' )) $h --; // If characters are equal else if ( $str [ $l ] == $str [ $h ]) { $l ++; $h --; } // If characters are not equal then // sentence is not palindrome else return false; } // Returns true if sentence is palindrome return true; } // Driver program to test sentencePalindrome() $str = "Too hot to hoot." ; if (sentencePalindrome( $str )) echo "Sentence is palindrome." ; else echo "Sentence is not palindrome." ; return 0; ?> |
Output:
Sentence is palindrome.
This article is contributed by nuclode. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.