Pares de caracteres de dos strings con suma par

Dadas dos strings s1 y s2 . La tarea es tomar un carácter de la primera string y un carácter de la segunda string, y verificar si la suma de los valores ASCII de ambos caracteres es un número par. Imprime el número total de dichos pares. Tenga en cuenta que ambas strings consisten en alfabetos ingleses en minúsculas.
Ejemplos: 
 

Entrada: s1 = “geeks”, s2 = “para” 
Salida:
Todos los pares válidos son: 
(g, o) -> 103 + 111 = 214 
(e, o) -> 101 + 111 = 212 
(e, o) -> 101 + 111 = 212 
(k, o) -> 107 + 111 = 218 
(s, o) -> 115 + 111 = 226
Entrada: s1 = “abcd”, s2 = “swed” 
Salida:
 

Acercarse: 
 

  • Está claro que para que la suma sea par, ambos valores ascii deben ser pares o ambos deben ser impares.
  • Calcule el número total de valores ASCII pares e impares de la primera string. Sean a1 y b1 respectivamente.
  • Calcule el número total de valores ASCII pares e impares de la segunda string. Sean a2 y b2 respectivamente.
  • Entonces el número total de pares válidos será ((a1 * a2) + (b1 * b2)) .

A continuación se muestra la implementación del enfoque anterior: 
 

C++

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

Javascript

<script>
 
// Javascript implementation of the approach
 
// Function to return the total number of valid pairs
function totalPairs(s1, s2)
{
    var a1 = 0, b1 = 0;
 
    // Count total number of even and odd
    // ascii values for string s1
    for (var i = 0; i < s1.length; i++) {
        if ((s1[i].charCodeAt(0)) % 2 != 0)
            a1++;
        else
            b1++;
    }
 
    var a2 = 0, b2 = 0;
 
    // Count total number of even and odd
    // ascii values for string s2
    for (var i = 0; i < s2.length; i++) {
        if ((s2[i].charCodeAt(0)) % 2 != 0)
            a2++;
        else
            b2++;
    }
 
    // Return total valid pairs
    return ((a1 * a2) + (b1 * b2));
}
 
// Driver code
var s1 = "geeks", s2 = "for";
document.write( totalPairs(s1, s2));
 
</script>
Producción: 

5

 

Publicación traducida automáticamente

Artículo escrito por Shashank_Sharma 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 *