Dada una string. La tarea es encontrar el número de caracteres cuyo número de ocurrencias es primo.
Ejemplos :
Input : str = "geeksforgeeks" Output : 3 Count of occurrences of characters are: g -> 2 e -> 4 k -> 2 s -> 2 f -> 1 o -> 1 r -> 1 So, g, k and s occurs prime number of times i.e. 2 Input : str = "aabbcc" Output : 3
Comience a recorrer la string y cuente las ocurrencias de cada carácter usando un mapa en C++ y verifique si una ocurrencia es prima o no . Si es primo, entonces incremente el conteo; de lo contrario, no.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to find count of numbers // with prime frequencies #include <bits/stdc++.h> using namespace std; // Function to check if a // number is prime bool check_prime(int n) { // Corner cases if (n <= 1) return false; if (n <= 3) return true; // This is checked so that we can skip // middle five numbers in below loop if (n % 2 == 0 || n % 3 == 0) return false; for (int i = 5; i * i <= n; i = i + 6) if (n % i == 0 || n % (i + 2) == 0) return false; return true; } // Function to find count of numbers // with prime frequencies int countPrimeFrequent(string s) { int count = 0; // create a map to store // frequency of each character unordered_map<char, int> mp; // Store frequency of each character // in the map for (int i = 0; i < s.length(); i++) mp[s[i]]++; // now iterate the map and characters // with prime occurrences for (auto it = mp.begin(); it != mp.end(); it++) { // if prime then increment count if (check_prime(it->second)) count++; } return count; } // Driver Code int main() { string s = "geeksforgeeks"; cout << countPrimeFrequent(s); return 0; }
Java
// Java program to find count of numbers // with prime frequencies import java.util.*; class GFG { // Function to check if a // number is prime static boolean check_prime(int n) { // Corner cases if (n <= 1) { return false; } if (n <= 3) { return true; } // This is checked so that we can skip // middle five numbers in below loop if (n % 2 == 0 || n % 3 == 0) { return false; } for (int i = 5; i * i <= n; i = i + 6) { if (n % i == 0 || n % (i + 2) == 0) { return false; } } return true; } // Function to find count of numbers // with prime frequencies static int countPrimeFrequent(String s) { int count = 0; // create a map to store // frequency of each character Map<Character, Integer> mp = new HashMap<>(); // Store frequency of each character // in the map for (int i = 0; i < s.length(); i++) { if (mp.containsKey(s.charAt(i))) { mp.put(s.charAt(i), mp.get(s.charAt(i)) + 1); } else { mp.put(s.charAt(i), 1); } } // now iterate the map and characters // with prime occurrences for (Map.Entry<Character, Integer> entry : mp.entrySet()) { // if prime then increment count if (check_prime(entry.getValue())) { count++; } } return count; } // Driver Code public static void main(String[] args) { String s = "geeksforgeeks"; System.out.println(countPrimeFrequent(s)); } } // This code has been contributed by 29AjayKumar
Python3
# python3 program to find count of numbers # with prime frequencies # Function to check if a # number is prime def check_prime(n): # Corner cases if (n <= 1): return False if (n <= 3): return True # This is checked so that we can skip # middle five numbers in below loop if (n % 2 == 0 or n % 3 == 0): return False for i in range(5,n+1,6): if (n % i == 0 or n % (i + 2) == 0): return False return True # Function to find count of numbers # with prime frequencies def countPrimeFrequent(s): count = 0 # create a map to store # frequency of each character mp={} # Store frequency of each character # in the mp for i in range(0,len(s)): mp.setdefault(s[i],0) mp[s[i]]+=1 # now iterate the map and characters # with prime occurrences for i in mp.keys(): # if prime then increment count if (check_prime(mp[i])): count+=1 return count; # Driver Code s = "geeksforgeeks" print(countPrimeFrequent(s)) # This code is improved by sahilshelangia
C#
// C# program to find count of numbers // with prime frequencies using System; using System.Collections.Generic; class GFG { // Function to check if a // number is prime static Boolean check_prime(int n) { // Corner cases if (n <= 1) { return false; } if (n <= 3) { return true; } // This is checked so that we can skip // middle five numbers in below loop if (n % 2 == 0 || n % 3 == 0) { return false; } for (int i = 5; i * i <= n; i = i + 6) { if (n % i == 0 || n % (i + 2) == 0) { return false; } } return true; } // Function to find count of numbers // with prime frequencies static int countPrimeFrequent(String s) { int count = 0; // create a map to store // frequency of each character Dictionary<char, int> mp = new Dictionary<char,int>(); // Store frequency of each character // in the map for (int i = 0; i < s.Length; i++) { if (mp.ContainsKey(s[i])) { var v = mp[s[i]] + 1; mp.Remove(s[i]); mp.Add(s[i], v); } else { mp.Add(s[i], 1); } } // now iterate the map and characters // with prime occurrences foreach(KeyValuePair<char, int> entry in mp) { // if prime then increment count if (check_prime(entry.Value)) { count++; } } return count; } // Driver Code public static void Main(String[] args) { String s = "geeksforgeeks"; Console.WriteLine(countPrimeFrequent(s)); } } // This code is contributed by Rajput-Ji
Javascript
<script> // Javascript program to find count of numbers // with prime frequencies // Function to check if a // number is prime function check_prime(n) { // Corner cases if (n <= 1) return false; if (n <= 3) return true; // This is checked so that we can skip // middle five numbers in below loop if (n % 2 == 0 || n % 3 == 0) return false; for (let i = 5; i * i <= n; i = i + 6) if (n % i == 0 || n % (i + 2) == 0) return false; return true; } // Function to find count of numbers // with prime frequencies function countPrimeFrequent(s) { let count = 0; // create a map to store // frequency of each character let mp = new Map(); // Store frequency of each character // in the map for (let i = 0; i < s.length; i++) { if (mp.has(s[i])) { mp.set(s[i], mp.get(s[i]) + 1); } else { mp.set(s[i], 1); } } // now iterate the map and characters // with prime occurrences for (let it of mp) { // if prime then increment count if (check_prime(it[1])) count++; } return count; } // Driver Code let s = "geeksforgeeks"; document.write(countPrimeFrequent(s)); // This code is contributed by Saurabh Jaiswal </script>
Producción:
3
Publicación traducida automáticamente
Artículo escrito por sahilshelangia y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA