Check whether the given string is a valid identifier
Given a string str, the task is to check if the string is a valid identifier or not. In order to qualify as a valid identifier, the string must satisfy the following conditions:
- It must start with an either underscore(_) or any of the characters from the ranges [‘a’, ‘z’] and [‘A’, ‘Z’].
- There must not be any white space in the string.
- And, all the subsequent characters after the first character must not consist of any special characters like $, #, % etc.
Examples:
Input: str= “_Beginner123”
Output: ValidInput: str = “123Beginner_”
Output: Invalid
Approach: Traverse the string character by character and check whether all the requirements are met for it to be a valid identifier i.e. first character can only be either ‘_’ or an English alphabet and the rest of the characters must neither be a white space or any special character.
Below is the implementation of the above approach:
C++
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std; // Function that returns true if str // is a valid identifier bool isValid(string str, int n) { // If first character is invalid if (!((str[0] >= 'a' && str[0] <= 'z' ) || (str[0] >= 'A' && str[0] <= 'Z' ) || str[0] == '_' )) return false ; // Traverse the string for the rest of the characters for ( int i = 1; i < str.length(); i++) { if (!((str[i] >= 'a' && str[i] <= 'z' ) || (str[i] >= 'A' && str[i] <= 'Z' ) || (str[i] >= '0' && str[i] <= '9' ) || str[i] == '_' )) return false ; } // String is a valid identifier return true ; } // Driver code int main() { string str = "_Beginner123" ; int n = str.length(); if (isValid(str, n)) cout << "Valid" ; else cout << "Invalid" ; return 0; } |
Java
// Java implementation of the approach import java.util.*; class GFG { // Function that returns true if str // is a valid identifier static boolean isValid(String str, int n) { // If first character is invalid if (!((str.charAt( 0 ) >= 'a' && str.charAt( 0 ) <= 'z' ) || (str.charAt( 0 )>= 'A' && str.charAt( 0 ) <= 'Z' ) || str.charAt( 0 ) == '_' )) return false ; // Traverse the string for the rest of the characters for ( int i = 1 ; i < str.length(); i++) { if (!((str.charAt(i) >= 'a' && str.charAt(i) <= 'z' ) || (str.charAt(i) >= 'A' && str.charAt(i) <= 'Z' ) || (str.charAt(i) >= '0' && str.charAt(i) <= '9' ) || str.charAt(i) == '_' )) return false ; } // String is a valid identifier return true ; } // Driver code public static void main(String args[]) { String str = "_Beginner123" ; int n = str.length(); if (isValid(str, n)) System.out.println( "Valid" ); else System.out.println( "Invalid" ); } } // This code is contributed by SURENDRA_GANGWAR |
Python3
# Python3 implementation of the approach # Function that returns true if str1 # is a valid identifier def isValid(str1, n): # If first character is invalid if ((( ord (str1[ 0 ]) > = ord ( 'a' ) and ord (str1[ 0 ]) < = ord ( 'z' )) or ( ord (str1[ 0 ]) > = ord ( 'A' ) and ord (str1[ 0 ]) < = ord ( 'Z' )) or ord (str1[ 0 ]) = = ord ( '_' )) = = False ): return False # Traverse the for the rest of the characters for i in range ( 1 , len (str1)): if ((( ord (str1[i]) > = ord ( 'a' ) and ord (str1[i]) < = ord ( 'z' )) or ( ord (str1[i]) > = ord ( 'A' ) and ord (str1[i]) < = ord ( 'Z' )) or ( ord (str1[i]) > = ord ( '0' ) and ord (str1[i]) < = ord ( '9' )) or ord (str1[i]) = = ord ( '_' )) = = False ): return False # is a valid identifier return True # Driver code str1 = "_Beginner123" n = len (str1) if (isValid(str1, n)): print ( "Valid" ) else : print ( "Invalid" ) # This code is contributed by mohit kumar |
C#
// C# implementation of the approach using System; class GFG { // Function that returns true if str // is a valid identifier static bool isValid(String str, int n) { // If first character is invalid if (!((str[0] >= 'a' && str[0] <= 'z' ) || (str[0] >= 'A' && str[0] <= 'Z' ) || str[0] == '_' )) return false ; // Traverse the string for the rest of the characters for ( int i = 1; i < str.Length; i++) { if (!((str[i] >= 'a' && str[i] <= 'z' ) || (str[i] >= 'A' && str[i] <= 'Z' ) || (str[i] >= '0' && str[i] <= '9' ) || str[i] == '_' )) return false ; } // String is a valid identifier return true ; } // Driver code public static void Main(String []args) { String str = "_Beginner123" ; int n = str.Length; if (isValid(str, n)) Console.WriteLine( "Valid" ); else Console.WriteLine( "Invalid" ); } } // This code contributed by Rajput-Ji |
PHP
<?php // PHP implementation of the approach // Function that returns true if str // is a valid identifier function isValid( $str , $n ) { // If first character is invalid if (!(( $str [0] >= 'a' && $str [0] <= 'z' ) || ( $str [0] >= 'A' && $str [0] <= 'Z' ) || $str [0] == '_' )) return false; // Traverse the string // for the rest of the characters for ( $i = 1; $i < strlen ( $str ); $i ++) { if (!(( $str [ $i ] >= 'a' && $str [ $i ] <= 'z' ) || ( $str [ $i ] >= 'A' && $str [ $i ] <= 'Z' ) || ( $str [ $i ] >= '0' && $str [ $i ] <= '9' ) || $str [ $i ] == '_' )) return false; } // String is a valid identifier return true; } // Driver code $str = "_Beginner123" ; $n = strlen ( $str ); if (isValid( $str , $n )) print ( "Valid" ); else print ( "Invalid" ); // This code is contributed by Ryuga ?> |
Javascript
<script> // Javascript implementation of the approach // Function that returns true if str // is a valid identifier function isValid(str,n) { // If first character is invalid if (!((str[0] >= 'a' && str[0] <= 'z' ) || (str[0]>= 'A' && str[0] <= 'Z' ) || str[0] == '_' )) return false ; // Traverse the string for the rest of the characters for (let i = 1; i < str.length; i++) { if (!((str[i] >= 'a' && str[i] <= 'z' ) || (str[i] >= 'A' && str[i] <= 'Z' ) || (str[i] >= '0' && str[i] <= '9' ) || str[i] == '_' )) return false ; } // String is a valid identifier return true ; } // Driver code let str = "_Beginner123" ; let n = str.length; if (isValid(str, n)) document.write( "Valid" ); else document.write( "Invalid" ); // This code is contributed by patel2127 </script> |
Output:
Valid
Time Complexity: O(n), where n is length of the given string
Auxiliary Space: O(1)
Contact Us