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++ 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 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 |
# 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# 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 |
<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> |
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)