📜  使用位操作查找字母在字母中的位置

📅  最后修改于: 2021-05-25 09:18:40             🧑  作者: Mango

给定字符串英文字母。任务是为字符串的每个字符在英文字母中打印其位置。

注意:字符串中的字符不区分大小写。也就是说,“ A”和“ a”都处于第一位置。

例子:

方法:
通过对数字31进行逻辑运算,可以轻松找到字母在字母表中的位置。

请注意,这仅适用于字母,不适用于特殊字符。

每个字母都有一个ASCII值,可以用二进制形式表示。用数字31对该值进行按位和运算将得出字母在字母表中的位置。

下面是上述方法的实现:

C++
// C++ implementation of the approach
#include 
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


输出:
7 5 5 11 19