Complejidad de tiempo: O((len(str))1/2)
Espacio auxiliar: O(len(str))Complejidad de tiempo: O((l
Dada una string de alfabetos ingleses en minúsculas. La tarea es verificar si el conteo de caracteres distintos en la string es primo o no.
Ejemplos:
Input : str = "geeksforgeeks" Output :Yes Explanation: The number of distinct characters in the string is 7, and 7 is a prime number. Input : str ="geeks" Output : No
En este problema primero tenemos que contar los distintos caracteres en la string . Usaremos un mapa para almacenar la frecuencia de cada alfabeto . El siguiente paso es contar el número de caracteres distintos y verificar si el número es primo o no.
Si el número es primo imprimiremos Sí, de lo contrario No.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to check whether count of // distinct characters in a string // is Prime or not #include <bits/stdc++.h> using namespace std; // Find whether a number is prime or not bool isPrime(int n) { int i; // 1 is not prime if (n == 1) return false; // check if there is any factor or not for (i = 2; i <= sqrt(n); i++) { if (n % i == 0) return false; } return true; } // Count the distinct characters in a string int countDistinct(string s) { // create a map to store the // frequency of characters unordered_map<char, int> m; // traverse the string for (int i = 0; i < s.length(); i++) { // increase the frequency of character m[s[i]]++; } return m.size(); } // Driver code int main() { string str = "geeksforgeeks"; if (isPrime(countDistinct(str))) cout << "Yes" << endl; else cout << "No" << endl; return 0; }
Java
// Java program to check whether count of // distinct characters in a string // is Prime or not import java.util.*; class GFG { // Find whether a number is prime or not static boolean isPrime(int n) { int i; // 1 is not prime if (n == 1) return false; // check if there is any factor or not for (i = 2; i <= Math.sqrt(n); i++) { if (n % i == 0) return false; } return true; } // Count the distinct characters in a string static int countDistinct(String s) { // create a map to store the // frequency of characters Set<Character> m = new HashSet<Character>(); // traverse the string for (int i = 0; i < s.length(); i++) { // increase the frequency of character m.add(s.charAt(i)); } return m.size(); } // Driver code public static void main(String []args) { String str = "geeksforgeeks"; if (isPrime(countDistinct(str))) System.out.println("Yes"); else System.out.println("No"); } } // This code is contributed by ihritik
Python3
# Python 3 program to check whether # count of distinct characters in a # string is Prime or not # from math library import # sqrt method from math import sqrt # Find whether a number # is prime or not def isPrime(n) : # 1 is not prime if n == 1 : return False # check if there is any # factor or not for i in range(2, int(sqrt(n)) + 1) : if n % i == 0 : return False return True # Count the distinct characters # in a string def countDistinct(s) : # create a dictionary to store # the frequency of characters m = {} # dictionary with keys and its # initialize with value 0 m = m.fromkeys(s, 0) # traverse the string for i in range(len(s)) : # increase the frequency # of character m[s[i]] += 1 return len(m.keys()) # Driver code if __name__ == "__main__" : str = "geeksforgeeks" if isPrime(countDistinct(str)) : print("Yes") else : print("No") # This code is contributed # by ANKITRAI1
C#
// C# program to check whether count of // distinct characters in a string // is Prime or not using System; using System.Collections.Generic; class GFG { // Find whether a number is prime or not static bool isPrime(int n) { int i; // 1 is not prime if (n == 1) return false; // check if there is any factor or not for (i = 2; i <= Math.Sqrt(n); i++) { if (n % i == 0) return false; } return true; } // Count the distinct characters in a string static int countDistinct(String s) { // create a map to store the // frequency of characters HashSet<char> m = new HashSet<char>(); // traverse the string for (int i = 0; i < s.Length; i++) { // increase the frequency of character m.Add(s[i]); } return m.Count; } // Driver code public static void Main(String []args) { String str = "geeksforgeeks"; if (isPrime(countDistinct(str))) Console.WriteLine("Yes"); else Console.WriteLine("No"); } } // This code has been contributed by 29AjayKumar
Javascript
<script> // Javascript program to check whether count of // distinct characters in a string // is Prime or not // Find whether a number is prime or not function isPrime(n) { var i; // 1 is not prime if (n == 1) return false; // check if there is any factor or not for (i = 2; i <= Math.sqrt(n); i++) { if (n % i == 0) return false; } return true; } // Count the distinct characters in a string function countDistinct(s) { // create a map to store the // frequency of characters var m = new Map(); // traverse the string for (var i = 0; i < s.length; i++) { // increase the frequency of character if(m.has(s[i])) { m.set(s[i], m[s[i]]+1); } else { m.set(s[i],1); } } return m.size; } // Driver code var str = "geeksforgeeks"; if (isPrime(countDistinct(str))) document.write( "Yes" ); else document.write( "No" ); // This code is contributed by rutvik_56. </script>
Yes
Complejidad de tiempo: O((len(str)) 1/2 )
Espacio auxiliar: O(len(str))
Método 2: Uso de la función de contador:
- Cuente las frecuencias de todos los elementos usando la función Contador y el número de teclas de este diccionario de frecuencia da el conteo y verifica si es primo o no.
A continuación se muestra la implementación:
Python3
# Python program for the above approach from collections import Counter from math import sqrt as sqrt def isPrime(n): # 1 is not prime if n == 1: return False # check if there is any # factor or not for i in range(2, int(sqrt(n)) + 1): if n % i == 0: return False return True # Function to count the number of distinct # characters present in the string # str and check whether it is prime def countDis(str): # Stores all frequencies freq = Counter(str) # Return the size of the freq dictionary if(isPrime(len(freq))): return True else: return False # Driver Code if __name__ == "__main__": # Given string S S = "geeksforgeeks" print(countDis(S)) # This code is contributed by vikkycirus
True
Complejidad de tiempo: O((len(str)) 1/2 )
Espacio auxiliar: O(len(str))Complejidad de tiempo: O((len(str))1/2)
Espacio auxiliar: O(len(str)) Salida:
Publicación traducida automáticamente
Artículo escrito por andrew1234 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA