Count characters at same position as in English alphabet
Given a string of lower and uppercase characters, the task is to find how many characters are in the same position as in the English alphabet.
Examples:
Input: ABcED Output : 3 First three characters are at same position as in English alphabets. Input: w3wiki Output : 1 Only 'f' is at same position as in English alphabet Input : alphabetical Output : 3
For this we can have simple approach:
1) Initialize result as 0. 2) Traverse input string and do following for every character str[i] a) If 'i' is same as str[i] - 'a' or same as str[i] - 'A', then do result++ 3) Return result
Implementation:
C++
// C++ program to find number of characters at same // position as in English alphabets #include<bits/stdc++.h> using namespace std; int findCount(string str) { int result = 0; // Traverse input string for ( int i = 0 ; i < str.size(); i++) // Check that index of characters of string is // same as of English alphabets by using ASCII // values and the fact that all lower case // alphabetic characters come together in same // order in ASCII table. And same is true for // upper case. if (i == (str[i] - 'a' ) || i == (str[i] - 'A' )) result++; return result; } // Driver code int main() { string str = "AbgdeF" ; cout << findCount(str); return 0; } |
Java
// Java program to find number of // characters at same position // as in English alphabets import java.io.*; class GFG { static int findCount(String str) { int result = 0 ; // Traverse input string for ( int i = 0 ; i < str.length(); i++) // Check that index of characters // of string is same as of English // alphabets by using ASCII values // and the fact that all lower case // alphabetic characters come together // in same order in ASCII table. And // same is true for upper case. { if (i == (str.charAt(i) - 'a' ) || i == (str.charAt(i) - 'A' )) { result++; } } return result; } // Driver code public static void main(String[] args) { String str = "AbgdeF" ; System.out.print(findCount(str)); } } // This code is contributed by Rajput-JI |
Python3
# Python program to find number of # characters at same position as # in English alphabets # Function to count the number of # characters at same position as # in English alphabets def findCount( str ): result = 0 # Traverse the input string for i in range ( len ( str )): # Check that index of characters of string is # same as of English alphabets by using ASCII # values and the fact that all lower case # alphabetic characters come together in same # order in ASCII table. And same is true for # upper case. if ((i = = ord ( str [i]) - ord ( 'a' )) or (i = = ord ( str [i]) - ord ( 'A' ))): result + = 1 return result # Driver Code str = 'AbgdeF' print (findCount( str )) # This code is contributed # by SamyuktaSHegde |
Javascript
<script> // JavaScript program to find number of characters at same // position as in English alphabets function findCount(str) { var result = 0; // Traverse input string for ( var i = 0; i < str.length; i++) // Check that index of characters of string is // same as of English alphabets by using ASCII // values and the fact that all lower case // alphabetic characters come together in same // order in ASCII table. And same is true for // upper case. if ( i === str[i].charCodeAt(0) - "a" .charCodeAt(0) || i === str[i].charCodeAt(0) - "A" .charCodeAt(0) ) result++; return result; } // Driver code var str = "AbgdeF" ; document.write(findCount(str)); </script> |
C#
// C# program to find number of // characters at same position // as in English alphabets using System; class GFG { static int findCount( string str) { int result = 0; // Traverse input string for ( int i = 0 ; i < str.Length; i++) // Check that index of characters // of string is same as of English // alphabets by using ASCII values // and the fact that all lower case // alphabetic characters come together // in same order in ASCII table. And // same is true for upper case. if (i == (str[i] - 'a' ) || i == (str[i] - 'A' )) result++; return result; } // Driver code public static void Main() { string str = "AbgdeF" ; Console.Write(findCount(str)); } } // This code is contributed // by Akanksha Rai |
PHP
<?php // PHP program to find number of // characters at same position as // in English alphabets // Function to count the number of // characters at same position as // in English alphabets function findCount( $str ) { $result = 0; // Traverse the input string for ( $i = 0; $i < strlen ( $str ); $i ++) { // Check that index of characters of string is // same as of English alphabets by using ASCII // values and the fact that all lower case // alphabetic characters come together in same // order in ASCII table. And same is true for // upper case. if (( $i == ord( $str [ $i ]) - ord( 'a' )) or ( $i == ord( $str [ $i ]) - ord( 'A' ))) $result += 1; } return $result ; } // Driver Code $str = "AbgdeF" ; print (findCount( $str )) // This code has been contributed by 29AjayKumar ?> |
Output
5
Time Complexity: O(N), where N is the length of string.
Auxiliary Space: O(1).
Approach: Same Position Character Counter
- Initialize a counter variable to 0 to count the number of characters in the same position as in the English alphabet.
- Loop through each character in the input string.
- Convert the character to lowercase using the lower() method.
- Get the ASCII code of the character using the ord() method.
- Subtract the ASCII code of ‘a’ from the ASCII code of the character to get its position in the alphabet (0-indexed).
- Compare the position of the character with its index in the input string. If they are equal, increment the counter variable.
- Return the counter variable as the output.
C++
#include <iostream> #include <string> using namespace std; int count_same_position_chars(string s) { int count = 0; for ( int i = 0; i < s.length(); i++) { char c = tolower (s[i]); if (c - 'a' == i) { count++; } } return count; } int main() { string input_string = "ABcED" ; int result = count_same_position_chars(input_string); cout << result << endl; // Output: 3 return 0; } |
Java
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String inputString = "ABcED" ; int result = countSamePositionChars(inputString); System.out.println(result); // Output: 3 } public static int countSamePositionChars(String s) { int count = 0 ; for ( int i = 0 ; i < s.length(); i++) { char c = Character.toLowerCase(s.charAt(i)); if (c - 'a' == i) { count++; } } return count; } } |
Python3
def count_same_position_chars(s): count = 0 for i, c in enumerate (s): c = c.lower() if ord (c) - ord ( 'a' ) = = i: count + = 1 return count # Example usage: input_string = "ABcED" result = count_same_position_chars(input_string) print (result) # Output: 3 #This is contributed by Uppala Sridevi |
C#
// C# code addition using System; class Program { // Driver code static void Main( string [] args) { string inputString = "ABcED" ; int result = CountSamePositionChars(inputString); Console.WriteLine(result); // Output: 3 } static int CountSamePositionChars( string s) { int count = 0; for ( int i = 0; i < s.Length; i++) { // Convert each character to lower case character. char c = Char.ToLower(s[i]); // c-'a' means subtracting ASCII value from c, and // converting it into 0-based indexing. if (c - 'a' == i) { count++; } } return count; } } // The code is contributed by Arushi Goel. |
Javascript
function CountSamePositionChars(s) { let count = 0; for (let i = 0; i < s.length; i++) { // Convert each character to lower case character. let c = s[i].toLowerCase(); // c-'a' means subtracting ASCII value from c, and // converting it into 0-based indexing. if (c.charCodeAt(0) - 'a' .charCodeAt(0) == i) { count++; } } return count; } let inputString = "ABcED" ; let result = CountSamePositionChars(inputString); console.log(result); // Output: 3 |
Output
3
Time complexity: O(n), where n is the length of the input string.
Auxiliary space: O(1), as we are only using a constant amount of extra space to store the counter variable and temporary variables.
Contact Us