Open In App

Print all the non-repeating words from the two given sentences

Last Updated : 20 Dec, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

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:  

  1. Concatenate both the string and store it in another string variable.
  2. Extract one word from the concatenated string.
  3. 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)



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads