Imprimir todas las strings distintas de una array dada

Dada una array de strings arr[] de tamaño N , la tarea es imprimir todas las distintas strings presentes en la array dada.

 Ejemplos:

Entrada: arr[] = { «Geeks», «For», «Geeks», «Code», «Coder» } 
Salida: Coder Code Geeks For 
Explicación: dado que todas las strings en la array son distintas, la salida requerida es Coder Geeks del código para .

Entrada: arr[] = { “Bueno”, “Dios”, “Bueno”, “Dios”, “dios” } 
Salida: dios Bueno Dios

Enfoque ingenuo: el enfoque más simple para resolver este problema es ordenar la array según el orden lexicográfico de las strings. Recorra la array y verifique si la string actual de la array es igual a la string atravesada anteriormente o no. Si se encuentra que es falso, imprima la string actual. 

Complejidad de tiempo: O(N * M * log(N)), donde M es la longitud de la string más larga.  
Espacio Auxiliar: O(1)

Enfoque eficiente: para optimizar el enfoque anterior, la idea es utilizar Hashing . Siga los pasos a continuación para resolver el problema:

  • Inicialice un Set , digamos DistString , para almacenar las distintas strings de la array dada.
  • Atraviese la array e inserte los elementos de la array en DistString .
  • Finalmente, imprima todas las strings de DistString .

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

C++

// C++ program to implement
// the above approach
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to find the distinct strings
// from the given array
void findDisStr(vector<string>& arr, int N)
{
    // Stores distinct strings
    // from the given array
    unordered_set<string> DistString;
 
    // Traverse the array
    for (int i = 0; i < N; i++) {
 
        // If current string not
        // present into the set
        if (!DistString.count(arr[i])) {
 
            // Insert current string
            // into the set
            DistString.insert(arr[i]);
        }
    }
 
    // Traverse the set DistString
    for (auto String : DistString) {
 
        // Print distinct string
        cout << String << " ";
    }
}
 
// Driver Code
int main()
{
    vector<string> arr = { "Geeks", "For", "Geeks",
                           "Code", "Coder" };
 
    // Stores length of the array
    int N = arr.size();
 
    findDisStr(arr, N);
    return 0;
}

Java

// Java program to implement
// the above approach
import java.io.*;
import java.util.*;
 
class GFG{
 
// Function to find the distinct strings
// from the given array
static void findDisStr(List<String> arr, int N)
{
     
    // Stores distinct strings
    // from the given array
    Set<String> DistString = new HashSet<String>();
 
    // Traverse the array
    for(int i = 0; i < N; i++)
    {
         
        // If current string not
        // present into the set
        if (!DistString.contains(arr.get(i)))
        {
             
            // Insert current string
            // into the set
            DistString.add(arr.get(i));
        }
    }
 
    // Traverse the set DistString
    for(String string : DistString)
    {
         
        // Print distinct string
        System.out.print(string + " ");
    }
}
 
// Driver code
public static void main(String[] args)
{
    List<String> arr = Arrays.asList(new String[]{
        "Geeks", "For", "Geeks", "Code", "Coder" });
 
    // Stores length of the array
    int N = arr.size();
 
    findDisStr(arr, N);
}
}
 
// This code is contributed by jithin

Python3

# Python3 program to implement
# the above approach
 
# Function to find the distinct
# strings from the given array
def findDisStr(arr, N):
     
    # Stores distinct strings
    # from the given array
    DistString = set()
 
    # Traverse the array
    for i in range(N):
 
        # If current string not
        # present into the set
        if (arr[i] not in DistString):
 
            # Insert current string
            # into the set
            DistString.add(arr[i])
 
    # Traverse the set DistString
    for string in DistString:
         
        # Print distinct string
        print(string, end = " ")
    
# Driver Code
if __name__ == "__main__":
   
    arr = [ "Geeks", "For", "Geeks",
            "Code", "Coder" ]
 
    # Stores length of the array
    N = len(arr)
 
    findDisStr(arr, N)
     
# This code is contributed by chitranayal

C#

// C# program to implement
// the above approach
using System;
using System.Collections.Generic;
 
class GFG{
 
// Function to find the distinct strings
// from the given array
static void findDisStr(List<string> arr, int N)
{
     
    // Stores distinct strings
    // from the given array
    HashSet<string> DistString = new HashSet<string>();
 
    // Traverse the array
    for(int i = 0; i < N; i++)
    {
         
        // If current string not
        // present into the set
        if (!DistString.Contains(arr[i]))
        {
             
            // Insert current string
            // into the set
            DistString.Add(arr[i]);
        }
    }
 
    // Traverse the set DistString
    foreach(string a in DistString)
    { 
      Console.Write(a +" "); 
    } 
}
 
// Driver code
public static void Main(String[] args)
{
    List<String> arr = new List<string>(new []{
        "Geeks", "For", "Geeks", "Code", "Coder" });
 
    // Stores length of the array
    int N = arr.Count;
 
    findDisStr(arr, N);
}
}
 
// This code is contributed by jana_sayantan

Javascript

<script>
 
// JavaScript program to implement
// the above approach
 
 
// Function to find the distinct strings
// from the given array
function findDisStr(arr, N) {
    // Stores distinct strings
    // from the given array
    let DistString = new Set();
 
    // Traverse the array
    for (let i = N - 1; i >= 0; i--) {
        // If current string not
        // present into the set
        if (!DistString.has(arr[i])) {
 
            // Insert current string
            // into the set
            DistString.add(arr[i]);
        }
    }
     
 
    for (let String of DistString) {
 
        // Print distinct string
        document.write(String + " ");
    }
}
 
// Driver Code
 
let arr = ["Geeks", "For", "Geeks",
    "Code", "Coder"];
 
// Stores length of the array
let N = arr.length;
 
findDisStr(arr, N);
 
</script>
Producción: 

Coder Code Geeks For

 

Complejidad de tiempo: O(N * M), donde M es la longitud de la string más larga.  
Espacio Auxiliar: O(N * M)

Publicación traducida automáticamente

Artículo escrito por ManikantaBandla 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 *