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