Imprimir todas las palabras únicas de una string

Escriba una función que tome una string como argumento e imprima todas las palabras únicas en ella.

Ejemplos:

Input : Java is great. Grails is also great
Output : Java
         Grails
         also

Enfoque:
La idea es utilizar el mapa para realizar un seguimiento de las palabras ya ocurridas. Pero primero, tenemos que extraer todas las palabras de una String, ya que una string puede contener muchas oraciones con signos de puntuación.
Para extraer palabras de una string, consulte Extraer cada palabra de una string .

Python: La idea es usar un Diccionario para calcular el conteo de cada palabra. Pero primero, tenemos que extraer todas las palabras de una String porque una string puede contener signos de puntuación. Esto se hace usando regex o expresión regular. La palabra que tiene número 1 en el diccionario es una palabra única.

Java

// Java program to print unique words
// from a string
 
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
public class Test
{
    // Prints unique words in a string
    static void printUniquedWords(String str)
    {
        // Extracting words from string
        Pattern p = Pattern.compile("[a-zA-Z]+");
        Matcher m = p.matcher(str);
         
        // Map to store count of a word
        HashMap<String, Integer> hm = new HashMap<>();
         
        // if a word found
        while (m.find())
        {
            String word = m.group();
             
            // If this is first occurrence of word
            if(!hm.containsKey(word))
                hm.put(word, 1);
            else
                // increment counter of word
                hm.put(word, hm.get(word) + 1);
             
        }
         
        // Traverse map and print all words whose count
        // is  1
        Set<String> s = hm.keySet();
        Iterator<String> itr = s.iterator();
 
        while(itr.hasNext())
        {
            String w = itr.next();
             
            if (hm.get(w) == 1)
                System.out.println(w);
        }   
    }
     
    // Driver Method
    public static void main(String[] args)
    {
        String str = "Java is great. Grails is also great";
        printUniquedWords(str);
    }
}

Python3

# Python program to print unique word
# in a string.
# Using re (Regular Expression module)
# It is used here to match a pattern
# in the given string
import re
 
# Declare a dictionary
dict = {}
 
# Method to check whether the word
# exists in dictionary or not
def uniqueWord(Word):
 
    if Word in dict:
 
        # If the word exists in dictionary then
        # simply increase its count
        dict[words] += 1
 
    else:
 
        # If the word does not exists in
        # dictionary update the dictionary
        # and make its count 1
        dict.update({words: 1})
 
# Driver code
if __name__ == '__main__':
     
    string = "Java is great. Grails is also great"
     
    # re.split() method is used to split
    # all the words in a string separated
    # by non-alphanumeric characters (\W)
    ListOfWords = re.split("[\W]+", string)
 
    # Extract each word from ListOfWords
    # and pass it to the method uniqueWord()
    for words in ListOfWords:
        uniqueWord(words)
 
    # Iterate over dictionary if the value
    # of the key is 1, then print the element
    for elements in dict:
        if dict[elements] == 1:
            print(elements)
Producción: 

Java
Grails
also

Este artículo es una contribución de Gaurav Ahirwar y Gaurav Miglani . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente. 

Método 2: usando set()

Acercarse:

En este enfoque, almacenamos la string en forma de un conjunto de palabras individuales e imprimimos las palabras. Para resolver este problema con este método, primero debemos conocer https://www.geeksforgeeks.org/sets-in-python/

A continuación se muestra la implementación del enfoque anterior:

Python3

# python program to print all
# the unique words in a string
# in python using set() method
# function to print unique words
 
 
def printWords(l):
     
    # for loop for iterating
    for i in l:
        print(i)
 
 
# Driver code
str = "geeks for geeks"
 
# storing string in the form of list of words
s = set(str.split(" "))
 
# passing list to print words function
printWords(s)
Producción

geeks
for

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *