Check if given string contains all the digits
Given a string str consisting of alphanumeric characters, the task is to check whether the string contains all the digits from 1 to 9. The string can contain other characters, but it should contain all the digits from 1 to 9.
Examples:
Input: str = “Geeks12345for69708”
Output: Yes
Explanation: All the digits from 0 to 9 are present in the given string.Input: str = “Amazing1234”
Output: No
Explanation: All the digits are not present in the string.
Approach: Create a frequency array to mark the frequency of each of the digits from 0 to 9. Finally, traverse the frequency array and if there is any digit that is not present in the given string then the answer will be “No” else the answer will be “Yes”.
Below is the implementation of the above approach:
C++
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std; const int MAX = 10; // Function that returns true // if ch is a digit bool isDigit( char ch) { if (ch >= '0' && ch <= '9' ) return true ; return false ; } // Function that returns true // if str contains all the // digits from 0 to 9 bool allDigits(string str, int len) { // To mark the present digits bool present[MAX] = { false }; // For every character of the string for ( int i = 0; i < len; i++) { // If the current character is a digit if (isDigit(str[i])) { // Mark the current digit as present int digit = str[i] - '0' ; present[digit] = true ; } } // For every digit from 0 to 9 for ( int i = 0; i < MAX; i++) { // If the current digit is // not present in str if (!present[i]) return false ; } return true ; } // Driver code int main() { string str = "Geeks12345for69708" ; int len = str.length(); if (allDigits(str, len)) cout << "Yes" ; else cout << "No" ; return 0; } |
Java
// Java implementation of the approach class GFG { static int MAX = 10 ; // Function that returns true // if ch is a digit static boolean isDigit( char ch) { if (ch >= '0' && ch <= '9' ) return true ; return false ; } // Function that returns true // if str contains all the // digits from 0 to 9 static boolean allDigits(String str, int len) { // To mark the present digits boolean []present = new boolean [MAX]; // For every character of the String for ( int i = 0 ; i < len; i++) { // If the current character is a digit if (isDigit(str.charAt(i))) { // Mark the current digit as present int digit = str.charAt(i) - '0' ; present[digit] = true ; } } // For every digit from 0 to 9 for ( int i = 0 ; i < MAX; i++) { // If the current digit is // not present in str if (!present[i]) return false ; } return true ; } // Driver code public static void main(String[] args) { String str = "Geeks12345for69708" ; int len = str.length(); if (allDigits(str, len)) System.out.print( "Yes" ); else System.out.print( "No" ); } } // This code is contributed by 29AjayKumar |
Python3
# Python3 implementation of the approach MAX = 10 # Function that returns true # if ch is a digit def isDigit(ch): ch = ord (ch) if (ch > = ord ( '0' ) and ch < = ord ( '9' )): return True return False # Function that returns true # if st contains all the # digits from 0 to 9 def allDigits(st, le): # To mark the present digits present = [ False for i in range ( MAX )] # For every character of the string for i in range (le): # If the current character is a digit if (isDigit(st[i])): # Mark the current digit as present digit = ord (st[i]) - ord ( '0' ) present[digit] = True # For every digit from 0 to 9 for i in range ( MAX ): # If the current digit is # not present in st if (present[i] = = False ): return False return True # Driver code st = "Geeks12345for69708" le = len (st) if (allDigits(st, le)): print ( "Yes" ) else : print ( "No" ) # This code is contributed by Mohit Kumar |
C#
// C# implementation of the approach using System; class GFG { static int MAX = 10; // Function that returns true // if ch is a digit static bool isDigit( char ch) { if (ch >= '0' && ch <= '9' ) return true ; return false ; } // Function that returns true // if str contains all the // digits from 0 to 9 static bool allDigits(String str, int len) { // To mark the present digits bool []present = new bool [MAX]; // For every character of the String for ( int i = 0; i < len; i++) { // If the current character is a digit if (isDigit(str[i])) { // Mark the current digit as present int digit = str[i] - '0' ; present[digit] = true ; } } // For every digit from 0 to 9 for ( int i = 0; i < MAX; i++) { // If the current digit is // not present in str if (!present[i]) return false ; } return true ; } // Driver code public static void Main(String[] args) { String str = "Geeks12345for69708" ; int len = str.Length; if (allDigits(str, len)) Console.Write( "Yes" ); else Console.Write( "No" ); } } // This code is contributed by 29AjayKumar |
Javascript
<script> // JavaScript implementation of the approach let MAX = 10; // Function that returns true // if ch is a digit function isDigit(ch) { if (ch >= '0' && ch <= '9' ) return true ; return false ; } // Function that returns true // if str contains all the // digits from 0 to 9 function allDigits(str, len) { // To mark the present digits let present = Array.from({length: MAX}, (_, i) => 0); // For every character of the String for (let i = 0; i < len; i++) { // If the current character is a digit if (isDigit(str[i])) { // Mark the current digit as present let digit = str[i] - '0' ; present[digit] = true ; } } // For every digit from 0 to 9 for (let i = 0; i < MAX; i++) { // If the current digit is // not present in str if (!present[i]) return false ; } return true ; } // Driver code let str = "Geeks12345for69708" ; let len = str.length; if (allDigits(str, len)) document.write( "Yes" ); else document.write( "No" ); </script> |
Yes
Time Complexity: O(n)
Auxiliary Space: O(1), no extra space is required, so it is a constant.
Please Login to comment...