Remove all the palindromic words from the given sentence
Given a sentence str. The problem is to remove all the palindromic words from the given sentence.
Examples:
Input : str = "Text contains malayalam and level words" Output : This contains and words Input : str = "abc bcd" Output : abc bcd
Approach: One by one extract all the words. Check if the current word is not a palindrome then add it to the final string.
Algorithm:
removePalinWords(str, n) Initialize final_str = "", word = "" str = str + " " for i = 0 to n-1 if str[i] != ' ', then word = word + str[i] else if (!(isPalindrome(word)), then final_str += word + " " word = "" return final_str
isPalindrome() function is used to check whether the given string is palindrome or not. Refer this post.
C++
// C++ implementation to remove all the // palindromic words from the given sentence #include <bits/stdc++.h> using namespace std; // function to check if 'str' is palindrome bool isPalindrome(string str) { int i = 0, j = str.size() - 1; // traversing from both the ends while (i < j) // not palindrome if (str[i++] != str[j--]) return false ; // palindrome return true ; } // function to remove all the palindromic words // from the given sentence string removePalinWords(string str) { // 'final_str' to store the final string and // 'word' to one by one store each word of 'str' string final_str = "" , word = "" ; // add space at the end of 'str' str = str + " " ; int n = str.size(); // traversing 'str' for ( int i = 0; i < n; i++) { // accumulating characters of the current word if (str[i] != ' ' ) word = word + str[i]; else { // if 'word' is not palindrome then a // add it to 'final_str' if (!(isPalindrome(word))) final_str += word + " " ; // reset word = "" ; } } // required final string return final_str; } // Driver program to test above int main() { string str = "Text contains malayalam and level words" ; cout << removePalinWords(str); return 0; } |
chevron_right
filter_none
Java
// Java implementation to remove all the // palindromic words from the given sentence class GFG { // function to check if 'str' is palindrome static boolean isPalindrome(String str) { int i = 0 , j = str.length() - 1 ; // traversing from both the ends while (i < j) { // not palindrome if (str.charAt(i++) != str.charAt(j--)) return false ; } // palindrome return true ; } // function to remove all the palindromic words // from the given sentence static String removePalinWords(String str) { // 'final_str' to store the final string and // 'word' to one by one store each word of 'str' String final_str = "" , word = "" ; // add space at the end of 'str' str = str + " " ; int n = str.length(); // traversing 'str' for ( int i = 0 ; i < n; i++) { // accumulating characters of the current word if (str.charAt(i) != ' ' ) word = word + str.charAt(i); else { // if 'word' is not palindrome then a // add it to 'final_str' if (!(isPalindrome(word))) final_str += word + " " ; // reset word = "" ; } } // required final string return final_str; } // Driver code public static void main (String[] args) { String str = "Text contains malayalam and level words" ; System.out.print(removePalinWords(str)); } } // This code is contributed by Anant Agarwal. |
chevron_right
filter_none
Python3
# Python3 implementation to remove all the # palindromic words from the given sentence # function to check if 'str' is palindrome def isPalindrome(string) : i = 0 ; j = len (string) - 1 ; # traversing from both the ends while (i < j) : # not palindrome if (string[i] ! = string[j]) : return False ; i + = 1 ; j - = 1 ; # palindrome return True ; # function to remove all the palindromic words # from the given sentence def removePalinWords(string) : # 'final_str' to store the final string and # 'word' to one by one store each word of 'str' final_str = " "; word = " "; # add space at the end of 'str' string = string + " " ; n = len (string); # traversing 'str' for i in range (n) : # accumulating characters of the current word if (string[i] ! = ' ' ) : word = word + string[i]; else : # if 'word' is not palindrome then a # add it to 'final_str' if ( not (isPalindrome(word))) : final_str + = word + " " ; # reset word = ""; # required final string return final_str; # Driver Code if __name__ = = "__main__" : string = "Text contains malayalam and level words" ; print (removePalinWords(string)); # This code is contributed by AnkitRai01 |
chevron_right
filter_none
C#
// C# implementation to remove all the // palindromic words from the given sentence using System; class GFG { // function to check if 'str' is // palindrome static bool isPalindrome( string str) { int i = 0, j = str.Length - 1; // traversing from both the ends while (i < j) { // not palindrome if (str[i++] != str[j--]) return false ; } // palindrome return true ; } // function to remove all the // palindromic words from the // given sentence static String removePalinWords( string str) { // 'final_str' to store the final // string and 'word' to one by one // store each word of 'str' string final_str = "" , word = "" ; // add space at the end of 'str' str = str + " " ; int n = str.Length; // traversing 'str' for ( int i = 0; i < n; i++) { // accumulating characters of // the current word if (str[i] != ' ' ) word = word + str[i]; else { // if 'word' is not palindrome // then a add it to 'final_str' if (!(isPalindrome(word))) final_str += word + " " ; // reset word = "" ; } } // required final string return final_str; } // Driver code public static void Main () { string str = "Text contains malayalam " + "and level words" ; Console.WriteLine(removePalinWords(str)); } } // This code is contributed by vt_m. |
chevron_right
filter_none
Output:
Text contains and words
Time Complexity: O(n).
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.