📜  来自两个字符串的字符对,其和为偶数

📅  最后修改于: 2021-04-23 19:47:26             🧑  作者: Mango

给定两个字符串s1s2 。任务是采取从第一个字符串一个字符,并从第二字符串一个字符,并检查这两个字符的ASCII值之和为偶数。打印此类对的总数。请注意,这两个字符串均由小写英文字母组成。

例子:

方法:

  • 显然,要使总和为偶数,两个ascii值都必须为偶数,或者两个都必须为奇数。
  • 从第一个字符串计算奇数和偶数ascii值的总数。分别设为a1b1
  • 计算第二个字符串中奇数和偶数ascii值的总数。分别设为a2b2
  • 然后,有效对的总数将为((a1 * a2)+(b1 * b2))

下面是上述方法的实现:

C++
// C++ implementation of the approach
#include 
using namespace std;
  
// Function to return the total number of valid pairs
int totalPairs(string s1, string s2)
{
    int a1 = 0, b1 = 0;
  
    // Count total number of even and odd
    // ascii values for string s1
    for (int i = 0; i < s1.length(); i++) {
        if (int(s1[i]) % 2 != 0)
            a1++;
        else
            b1++;
    }
  
    int a2 = 0, b2 = 0;
  
    // Count total number of even and odd
    // ascii values for string s2
    for (int i = 0; i < s2.length(); i++) {
        if (int(s2[i]) % 2 != 0)
            a2++;
        else
            b2++;
    }
  
    // Return total valid pairs
    return ((a1 * a2) + (b1 * b2));
}
  
// Driver code
int main()
{
    string s1 = "geeks", s2 = "for";
    cout << totalPairs(s1, s2);
  
    return 0;
}


Java
// Java implementation of the approach
class GfG
{
  
    // Function to return the total number of valid pairs 
    static int totalPairs(String s1, String s2) 
    { 
        int a1 = 0, b1 = 0; 
      
        // Count total number of even and odd 
        // ascii values for string s1 
        for (int i = 0; i < s1.length(); i++) 
        { 
            if ((int)s1.charAt(i) % 2 != 0) 
                a1++; 
            else
                b1++; 
        } 
      
        int a2 = 0, b2 = 0; 
      
        // Count total number of even and odd 
        // ascii values for string s2 
        for (int i = 0; i < s2.length(); i++)
        { 
            if ((int)s2.charAt(i) % 2 != 0) 
                a2++; 
            else
                b2++; 
        } 
      
        // Return total valid pairs 
        return ((a1 * a2) + (b1 * b2)); 
    } 
  
    // Driver code
    public static void main(String []args)
    {
          
        String s1 = "geeks", s2 = "for"; 
        System.out.println(totalPairs(s1, s2));
    }
}
  
// This code is contributed by Rituraj Jain


Python3
# Python3 implementation of the approach 
  
# Function to return the total 
# number of valid pairs 
def totalPairs(s1, s2) : 
  
    a1 = 0; b1 = 0; 
  
    # Count total number of even and  
    # odd ascii values for string s1 
    for i in range(len(s1)) :
        if (ord(s1[i]) % 2 != 0) :
            a1 += 1; 
        else :
            b1 += 1; 
      
    a2 = 0 ; b2 = 0; 
  
    # Count total number of even and odd 
    # ascii values for string s2 
    for i in range(len(s2)) :
        if (ord(s2[i]) % 2 != 0) :
            a2 += 1; 
        else :
            b2 += 1; 
      
    # Return total valid pairs 
    return ((a1 * a2) + (b1 * b2)); 
  
# Driver code 
if __name__ == "__main__" : 
  
    s1 = "geeks";
    s2 = "for"; 
      
    print(totalPairs(s1, s2));
      
# This code is contributed by Ryuga


C#
// C# implementation of the approach 
using System;
  
class GfG 
{ 
  
    // Function to return the total number of valid pairs 
    static int totalPairs(String s1, String s2) 
    { 
        int a1 = 0, b1 = 0; 
      
        // Count total number of even and odd 
        // ascii values for string s1 
        for (int i = 0; i < s1.Length; i++) 
        { 
            if ((int)s1[i] % 2 != 0) 
                a1++; 
            else
                b1++; 
        } 
      
        int a2 = 0, b2 = 0; 
      
        // Count total number of even and odd 
        // ascii values for string s2 
        for (int i = 0; i < s2.Length; i++) 
        { 
            if ((int)s2[i] % 2 != 0) 
                a2++; 
            else
                b2++; 
        } 
      
        // Return total valid pairs 
        return ((a1 * a2) + (b1 * b2)); 
    } 
  
    // Driver code 
    public static void Main(String []args) 
    { 
          
        String s1 = "geeks", s2 = "for"; 
        Console.WriteLine(totalPairs(s1, s2)); 
    } 
} 
  
// This code is contributed by 29AjayKumar


输出:
5