Print all the non-repeating words from the two given sentences
Given two strings A and B, the task is to print all the non-repeating words out of the two given sentences.
Examples:
Input: A = “I have a blue pen”, B = “I got a red pen”
Output: have blue got red
Explanation:
The words have, blue, got and red have not been repeated in either the same sentence or another sentence.
Input: A = “I am going to park”, B = “I am in park”
Output: going to in
Approach: The idea is to iterate over all the words and check if the word is being repeated or not. Therefore, the following steps can be followed to compute the answer:
- Concatenate both the string and store it in another string variable.
- Extract one word from the concatenated string.
- If that word is present in either A or in B, then print it. Else, continue for the remaining words.
Below is the implementation of the above approach:
C++
// C++ program to print all the // non-repeating words from the // two given sentences #include <bits/stdc++.h> #include <string.h> using namespace std; // Function to print all the // non-repeating words from the // two given sentences void removeRepeating(string s1, string s2) { // Concatenate the two strings // into one string s3 = s1 + " " + s2 + " " ; string words = "" ; int i = 0; // Iterating over the whole // concatenated string for ( auto x : s3) { if (x == ' ' ) { // Searching for the word in A. // If while searching, we reach // the end of the string, then // the word is not present in // the string if (s1.find(words) == string::npos || s2.find(words) == string::npos) cout << words; // Initialise word for the // next iteration words = "" ; } else { words = words + x; } } } // Driver code int main() { string s1 = "I have go a pen" ; string s2 = "I want to go park" ; removeRepeating(s1, s2); return 0; } |
Java
// Java program to print all the // non-repeating words from the // two given sentences import java.io.*; import java.util.*; class GFG{ // Function to print all the // non-repeating words from the // two given sentences static void removeRepeating(String s1, String s2) { // Concatenate the two Strings // into one String s3 = s1 + " " + s2 + " " ; String words = "" ; int i = 0 ; // Iterating over the whole // concatenated String for ( char x : s3.toCharArray()) { if (x == ' ' ) { // Searching for the word in A. // If while searching, we reach // the end of the String, then // the word is not present in // the String if (!s1.contains(words) || !s2.contains(words)) System.out.print(words); // Initialise word for the // next iteration words = " " ; } else { words = words + x; } } } // Driver code public static void main(String[] args) { String s1 = "I have go a pen" ; String s2 = "I want to go park" ; removeRepeating(s1, s2); } } // This code is contributed by sapnasingh4991 |
Python3
# Python 3 program to print all the # non-repeating words from the # two given sentences # Function to print all the # non-repeating words from the # two given sentences def removeRepeating(s1, s2): # Concatenate the two # strings into one s3 = s1 + " " + s2 + " " words = "" i = 0 # Iterating over the whole # concatenated string for x in s3: if (x = = ' ' ): # Searching for the word in A. # If while searching, we reach # the end of the string, then # the word is not present in # the string if (words not in s1 or words not in s2): print (words, end = "") # Initialise word for the # next iteration words = " " else : words = words + x # Driver code if __name__ = = "__main__" : s1 = "I have go a pen" s2 = "I want to go park" removeRepeating(s1, s2) # This code is contributed by Chitranayal |
C#
// C# program to print all the // non-repeating words from the // two given sentences using System; class GFG{ // Function to print all the // non-repeating words from the // two given sentences static void removeRepeating( string s1, string s2) { // Concatenate the two Strings // into one string s3 = s1 + " " + s2 + " " ; string words = "" ; int i = 0; // Iterating over the whole // concatenated String foreach ( char x in s3.ToCharArray()) { if (x == ' ' ) { // Searching for the word in A. // If while searching, we reach // the end of the String, then // the word is not present in // the String if (!s1.Contains(words) || !s2.Contains(words)) Console.Write(words); // Initialise word for the // next iteration words = " " ; } else { words = words + x; } } } // Driver code public static void Main( string [] args) { string s1 = "I have go a pen" ; string s2 = "I want to go park" ; removeRepeating(s1, s2); } } // This code is contributed by rutvik_56 |
Javascript
<script> // Javascript program to print all the // non-repeating words from the // two given sentences // Function to print all the // non-repeating words from the // two given sentences function removeRepeating(s1,s2) { // Concatenate the two Strings // into one let s3 = s1 + " " + s2 + " " ; let words = "" ; let i = 0; // Iterating over the whole // concatenated String let temp = s3.split( "" ) for (let x = 0; x < temp.length; x++) { if (temp[x] == ' ' ) { // Searching for the word in A. // If while searching, we reach // the end of the String, then // the word is not present in // the String if (!s1.includes(words) || !s2.includes(words)) document.write(words); // Initialise word for the // next iteration words = " " ; } else { words = words + temp[x]; } } } // Driver code let s1 = "I have go a pen" ; let s2 = "I want to go park" ; removeRepeating(s1, s2); // This code is contributed by avanitrachhadiya2155 </script> |
Output:
have a pen I want to park
Time complexity: O(M+N) where M and N is length of string s1 and string s2
Auxiliary space: O(M+N)
Contact Us