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