Dada la string str de alfabetos en minúsculas, la tarea es verificar si la frecuencia de cada carácter distinto en la string es igual a su posición en el alfabeto inglés. Si es válido, escriba «Sí» , de lo contrario, escriba «No» .
Ejemplos:
Entrada: str = “abbcccdddd”
Salida: Sí
Explicación:
Dado que la frecuencia de cada carácter distinto es igual a su posición en el alfabeto inglés, es decir,
F(a) = 1,
F(b) = 2,
F(c) = 3, y
F(d) = 4
Por lo tanto, la salida es Sí.Entrada: str = «geeksforgeeks»
Salida: No
Acercarse:
- Almacene la frecuencia de cada carácter en una array de 26, con fines de hashing .
- Ahora recorra la array hash y verifique si la frecuencia de cada carácter en un índice i es igual a (i + 1) o no.
- En caso afirmativo, escriba «Sí» , de lo contrario, escriba «No».
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program for the above approach #include "bits/stdc++.h" using namespace std; bool checkValidString(string str) { // Initialise frequency array int freq[26] = { 0 }; // Traverse the string for (int i = 0; str[i]; i++) { // Update the frequency freq[str[i] - 'a']++; } // Check for valid string for (int i = 0; i < 26; i++) { // If frequency is non-zero if (freq[i] != 0) { // If freq is not equals // to (i+1), then return // false if (freq[i] != i + 1) { return false; } } } // Return true; return true; } // Driver Code int main() { // Given string str string str = "abbcccdddd"; if (checkValidString(str)) cout << "Yes"; else cout << "No"; return 0; }
Java
// Java program for the above approach class GFG{ static boolean checkValidString(String str) { // Initialise frequency array int freq[] = new int[26]; // Traverse the String for(int i = 0; i < str.length(); i++) { // Update the frequency freq[str.charAt(i) - 'a']++; } // Check for valid String for(int i = 0; i < 26; i++) { // If frequency is non-zero if (freq[i] != 0) { // If freq is not equals // to (i+1), then return // false if (freq[i] != i + 1) { return false; } } } // Return true; return true; } // Driver Code public static void main(String[] args) { // Given String str String str = "abbcccdddd"; if (checkValidString(str)) { System.out.print("Yes"); } else { System.out.print("No"); } } } // This code is contributed by sapnasingh4991
Python3
# Python3 program for the # above approach def checkValidString(str): # Initialise frequency array freq = [0 for i in range(26)] # Traverse the string for i in range(len(str)): # Update the frequency freq[ord(str[i]) - ord('a')] += 1 # Check for valid string for i in range(26): # If frequency is non-zero if(freq[i] != 0): # If freq is not equals # to (i+1), then return # false if(freq[i] != i + 1): return False # Return true return True # Driver Code # Given string str str = "abbcccdddd" if(checkValidString(str)): print("Yes") else: print("No") # This code is contributed by avanitrachhadiya2155
C#
// C# program for the above approach using System; class GFG{ static bool checkValidString(String str) { // Initialise frequency array int []freq = new int[26]; // Traverse the String for(int i = 0; i < str.Length; i++) { // Update the frequency freq[str[i] - 'a']++; } // Check for valid String for(int i = 0; i < 26; i++) { // If frequency is non-zero if (freq[i] != 0) { // If freq is not equals // to (i+1), then return // false if (freq[i] != i + 1) { return false; } } } // Return true; return true; } // Driver Code public static void Main(String[] args) { // Given String str String str = "abbcccdddd"; if (checkValidString(str)) { Console.Write("Yes"); } else { Console.Write("No"); } } } // This code is contributed by sapnasingh4991
Javascript
<script> // Javascript program for the above approach function checkValidString(str) { // Initialise frequency array var freq = new Array(26).fill(0); // Traverse the String for(var i = 0; i < str.length; i++) { // Update the frequency freq[str[i].charCodeAt(0) - "a".charCodeAt(0)]++; } // Check for valid String for(var i = 0; i < 26; i++) { // If frequency is non-zero if (freq[i] !== 0) { // If freq is not equals // to (i+1), then return // false if (freq[i] !== i + 1) { return false; } } } // Return true; return true; } // Driver Code // Given String str var str = "abbcccdddd"; if (checkValidString(str)) { document.write("Yes"); } else { document.write("No"); } // This code is contributed by rdtank </script>
Yes
Complejidad de tiempo: O(N) , donde N es la longitud de la string.
Espacio Auxiliar: O(26)
Publicación traducida automáticamente
Artículo escrito por vaidhyanathansm y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA