Q:

Program to find the duplicate words in a string

belongs to collection: String Programs

0

Explanation

In this program, we need to find out the duplicate words present in the string and display those words.

big black bug bit a big black dog on his big black nose  

To find the duplicate words from the string, we first split the string into words. We count the occurrence of each word in the string. If count is greater than 1, it implies that a word has duplicate in the string.

In above example, the words highlighted in green are duplicate words.

Algorithm

  1. Define a string.
  2. Convert the string into lowercase to make the comparison insensitive.
  3. Split the string into words.
  4. Two loops will be used to find duplicate words. Outer loop will select a word and Initialize variable count to 1. Inner loop will compare the word selected by outer loop with rest of the words.
  5. If a match found, then increment the count by 1 and set the duplicates of word to '0' to avoid counting it again.
  6. After the inner loop, if count of a word is greater than 1 which signifies that the word has duplicates in the string.

Input:

string = "big black bug bit a big black dog on his big black nose"  

Output:

Duplicate words in a given string:
big
black

All Answers

need an explanation for this answer? contact us directly to get an explanation for this answer

Python

string = "big black bug bit a big black dog on his big black nose";  
   
#Converts the string into lowercase  
string = string.lower();  
   
#Split the string into words using built-in function  
words = string.split(" ");  
   
print("Duplicate words in a given string : ");  
for i in range(0, len(words)):  
    count = 1;  
    for j in range(i+1, len(words)):  
        if(words[i] == (words[j])):  
            count = count + 1;  
            #Set words[j] to 0 to avoid printing visited word  
            words[j] = "0";  
              
    #Displays the duplicate word if count is greater than 1  
    if(count > 1 and words[i] != "0"):  
        print(words[i]);  

 

Output:

 Duplicate words in a given string : 
big
black

 

C

#include <stdio.h>  
#include <string.h>  
   
int main()  
{     
    char string[] = "big black bug bit a big black dog on his big black nose";  
    char words[100][100];  
    int i = 0, j = 0, k, length, count;  
      
    //Split the string into words such that each row of array words represents a word  
    for(k=0; string[k]!='\0'; k++){  
          
        //Here, i represents row and j represents column of two-dimensional array words  
        if(string[k] != ' ' && string[k] != '\0'){  
            //Converts the string into lowercase and add it to array words  
            words[i][j++] = tolower(string[k]);  
        }  
        else{  
            words[i][j] = '\0';  
            //Increment row count to store new word  
            i++;  
            //Set column count to 0  
            j = 0;  
        }  
    }  
      
    //Store row count in variable length  
    length = i+1;  
      
    printf("Duplicate words in the given string: \n");  
    for(i = 0; i < length; i++){  
        count = 1;  
        for(j = i+1; j < length; j++){  
           if(strcmp(words[i], words[j]) == 0 && (strcmp(words[j],"0") != 0)){  
               count++;  
               //Set words[j] to 0 to avoid printing visited word  
               strcpy(words[j],"0");  
           }   
        }  
        //Displays the duplicate word if count is greater than 1  
        if(count > 1 )  
            printf("%s\n", words[i]);  
    }  
    
    return 0;  
}

  

 

Output:

Duplicate words in a given string : 
big
black

 

JAVA

public class DuplicateWord {  
    public static void main(String[] args) {  
        String string = "Big black bug bit a big black dog on his big black nose";  
        int count;  
          
        //Converts the string into lowercase  
        string = string.toLowerCase();  
          
        //Split the string into words using built-in function  
        String words[] = string.split(" ");  
          
        System.out.println("Duplicate words in a given string : ");   
        for(int i = 0; i < words.length; i++) {  
            count = 1;  
            for(int j = i+1; j < words.length; j++) {  
                if(words[i].equals(words[j])) {  
                    count++;  
                    //Set words[j] to 0 to avoid printing visited word  
                    words[j] = "0";  
                }  
            }  
              
            //Displays the duplicate word if count is greater than 1  
            if(count > 1 && words[i] != "0")  
                System.out.println(words[i]);  
        }  
    }  
}  

 

Output:

Duplicate words in a given string : 
big
black

 

C#

 using System;  
                      
public class DuplicateWord  
{  
    public static void Main()  
    {  
        String string1 = "Big black bug bit a big black dog on his big black nose";  
        int count;  
          
        //Converts the string into lowercase  
        string1 = string1.ToLower();  
          
        //Split the string into words using built-in function  
        String[] words = string1.Split(' ');  
          
        Console.WriteLine("Duplicate words in a given string : ");  
        for(int i = 0; i < words.Length; i++) {  
            count = 1;  
            for(int j = i+1; j < words.Length; j++) {  
                if(words[i].Equals(words[j])) {  
                    count++;  
                    //Set words[j] to 0 to avoid printing visited word  
                    words[j] = "0";  
                }  
            }  
              
            //Displays the duplicate word if count is greater than 1  
            if(count > 1 && words[i] != "0")  
                Console.WriteLine(words[i]);  
        }  
    }  
}  

 

Output:

Duplicate words in a given string : 
big
Black

 

PHP

<!DOCTYPE html>  
<html>  
<body>  
<?php  
$string = "Big black bug bit a big black dog on his big black nose";  
$count;  
   
//Converts the string into lowercase  
$string = strtolower($string);  
   
//Split the string into words using built-in function  
$words = explode(" ", $string);  
   
print("Duplicate words in a given string : <br>");  
for($i = 0; $i < count($words); $i++) {  
    $count = 1;  
    for($j = $i+1; $j < count($words); $j++) {  
        if($words[$i] == $words[$j]) {  
            $count++;  
            //Set words[j] to 0 to avoid printing visited word  
            $words[$j] = "0";  
        }  
    }  
      
    //Displays the duplicate word if count is greater than 1  
    if($count > 1 && $words[$i] != "0"){  
        print($words[$i]);  
        print("<br>");  
    }  
}  
?>  
</body>  
</html> 

 

 

Output:

Duplicate words in a given string : 
big
black

need an explanation for this answer? contact us directly to get an explanation for this answer

total answers (1)

This question belongs to these collections

Similar questions


Program to find the frequency of characters... >>
<< Program to find the duplicate characters in a stri...