Encuentre la posición de la letra en el alfabeto usando la operación Bit

Dada una string de alfabetos ingleses. La tarea es, para cada carácter en la string, imprimir su posición en los alfabetos ingleses.
Nota : Se considera que los caracteres de la string no distinguen entre mayúsculas y minúsculas. Es decir, tanto ‘A’ como ‘a’ están en la primera posición.
Ejemplos: 
 

Entrada: “Geeks” 
Salida: 7 5 5 11 19 
‘G’ es el carácter de los alfabetos 
‘e’ es el 5º y así sucesivamente…
Entrada: “Algoritmos” 
Salida: 1 12 7 15 18 9 20 8 13 19 
 

Enfoque: 
la posición de una letra en el alfabeto se puede encontrar fácilmente realizando una operación AND lógica con el número 31 .
Tenga en cuenta que esto solo se aplica a las letras y no a los caracteres especiales.
Cada letra tiene un valor ASCII que se puede representar en forma binaria. Realizando el bit a bit y de este valor con el número 31 le dará la posición de la letra en los alfabetos.
A continuación se muestra la implementación del enfoque anterior:
 

C++

// C++ implementation of the approach
#include <iostream>
using namespace std;
 
const int NUM = 31;
 
// Function to calculate the position
// of characters
void positions(string str, int n)
{
    for (int i = 0; i < n; i++) {
 
        // Performing AND operation
        // with number 31
        cout << (str[i] & NUM) << " ";
    }
}
 
// Driver code
int main()
{
    string str = "Geeks";
    int n = str.length();
 
    positions(str, n);
 
    return 0;
}

Java

// Java implementation of the approach
public class GFG {
 
    public static final int NUM = 31;
 
    // Function to calculate the position
    // of characters
    static void positions(String str, int n)
    {
        for (int i = 0; i < n; i++) {
 
            // Performing AND operation
            // with number 31
            System.out.print((str.charAt(i) & NUM) + " ");
        }
    }
 
    // Driver code
    public static void main(String[] args)
    {
        String str = "Geeks";
        int n = str.length();
        positions(str, n);
    }
}

Python

# Python3 implementation of the approach
  
NUM = 31
  
# Function to calculate the position
# of characters
def positions(str):
    for i in str:
          
        # Performing AND operation
        # with number 31
        print((ord(i) & NUM), end =" ")
  
# Driver code
str = "Geeks"
positions(str)

C#

// C# implementation of the approach
using System;
 
class GFG {
 
    public static int NUM = 31;
 
    // Function to calculate the position
    // of characters
    static void positions(string str, int n)
    {
        for (int i = 0; i < n; i++) {
 
            // Performing AND operation
            // with number 31
            Console.Write((str[i] & NUM) + " ");
        }
    }
 
    // Driver code
    public static void Main()
    {
        string str = "Geeks";
        int n = str.Length;
        positions(str, n);
    }
}
 
// This code is contributed by AnkitRai01

PHP

<?php
// PHP implementation of the approach
 
// Function to calculate the position
// of characters
function positions($str, $n)
{
    $a = 31;
    for ($i = 0; $i < $n; $i++)
    {
 
        // Performing AND operation
        // with number 31$
        print((ord($str[$i])&($a))." ");
    }
}
 
// Driver code
$str = "Geeks";
$n = strlen($str);
positions($str, $n);
 
// This code is contributed by 29AjayKumar
?>

Javascript

<script>
 
      // JavaScript implementation of the approach
      const NUM = 31;
 
      // Function to calculate the position
      // of characters
      function positions(str, n)
      {
        for (i = 0; i < n; i++)
        {
          // Performing AND operation
          // with number 31
          document.write((str[i].charCodeAt(0) & NUM) +
          " ");
        }
      }
 
      // Driver code
      var str = "Geeks";
      var n = str.length;
      positions(str, n);
       
</script>
Producción: 

7 5 5 11 19

 

Complejidad de tiempo: O(n)

Espacio Auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por Rajnis09 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *