Modifique los caracteres de una string agregando valores enteros de los mismos caracteres indexados de otra string dada

Dadas dos strings S y N de la misma longitud, compuestas por caracteres alfabéticos y numéricos respectivamente, la tarea es generar una nueva string obtenida sumando el valor entero de cada carácter de la string N con el valor ASCII del mismo carácter indexado de la string. s _ Finalmente, imprima la string resultante.
Nota: Si la suma excede 122, reste 26 de la suma e imprima el carácter resultante.

Ejemplos:

Entrada: S = “sol”, N = “966”
Salida: “murciélago”
Explicación:
Valor ASCII de ‘s’ = 115.
Por lo tanto, 115 + 9 = 124 – 26 = 98. Por lo tanto, el carácter equivalente es ‘b’.
Valor ASCII de ‘u’ = 117.
Por lo tanto, 117 + 6 = 123 – 26 = 97. Por lo tanto, el carácter equivalente es ‘a’.
Valor ASCII de ‘n’ = 110.
Por lo tanto, 110 + 6 = 116. Por lo tanto, el carácter equivalente es ‘t’.

Entrada: S = «manzana», N = «12580»
Salida: «bruto»

Enfoque: siga los pasos a continuación para resolver el problema:

  • Atraviesa la cuerda S:
    • Convierta el carácter actual de la string N en su valor entero equivalente. 
    • Agregue el valor entero obtenido al valor ASCII equivalente del carácter actual en la string S .
    • Si el valor excede 122 , que es el valor ASCII del último alfabeto ‘z’ , reste el valor por 26.
    • Actualice la string S reemplazando un carácter actual con el carácter cuyo valor ASCII es igual al valor obtenido.
  • Imprima la string resultante después de completar los pasos anteriores.

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

C++

// C++ program for the above approach
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to modify a given string
// by adding ASCII value of characters
// from a string S to integer values of
// same indexed characters in string N
void addASCII(string S, string N)
{
    // Traverse the string
    for (int i = 0; i < S.size(); i++) {
 
        // Stores integer value of
        // character in string N
        int a = int(N[i]) - '0';
 
        // Stores ASCII value of
        // character in string S
        int b = int(S[i]) + a;
 
        // If b exceeds 122
        if (b > 122)
            b -= 26;
 
        // Replace the character
        S[i] = char(b);
    }
 
    // Print resultant string
    cout << S;
}
 
// Driver Code
int main()
{
    // Given strings
    string S = "sun", N = "966";
 
    // Function call to modify
    // string S by given operations
    addASCII(S, N);
 
    return 0;
}

Java

// Java program for the above approach
import java.util.*;
class GFG
{
 
// Function to modify a given String
// by adding ASCII value of characters
// from a String S to integer values of
// same indexed characters in String N
static void addASCII(char []S, char []N)
{
   
    // Traverse the String
    for (int i = 0; i < S.length; i++)
    {
 
        // Stores integer value of
        // character in String N
        int a = (int)(N[i]) - '0';
 
        // Stores ASCII value of
        // character in String S
        int b = (int)(S[i]) + a;
 
        // If b exceeds 122
        if (b > 122)
            b -= 26;
 
        // Replace the character
        S[i] = (char)(b);
    }
 
    // Print resultant String
    System.out.print(S);
}
 
// Driver Code
public static void main(String[] args)
{
   
    // Given Strings
    String S = "sun", N = "966";
 
    // Function call to modify
    // String S by given operations
    addASCII(S.toCharArray(), N.toCharArray());
}
}
 
// This code is contributed by shikhasingrajput.

Python3

# python 3 program for the above approach
 
# Function to modify a given string
# by adding ASCII value of characters
# from a string S to integer values of
# same indexed characters in string N
def addASCII(S, N):
 
    # Traverse the string
    for i in range(len(S)):
 
        # Stores integer value of
        # character in string N
        a = ord(N[i]) - ord('0')
 
        # Stores ASCII value of
        # character in string S
        b = ord(S[i]) + a
 
        # If b exceeds 122
        if (b > 122):
            b -= 26
 
        # Replace the character
        S = S.replace(S[i], chr(b))
 
    # Print resultant string
    print(S)
 
# Driver Code
if __name__ == "__main__":
 
    # Given strings
    S = "sun"
    N = "966"
 
    # Function call to modify
    # string S by given operations
    addASCII(S, N)
 
    # This code is contributed by ukasp.

C#

// C# program for the above approach
using System;
public class GFG
{
 
// Function to modify a given String
// by adding ASCII value of characters
// from a String S to integer values of
// same indexed characters in String N
static void addASCII(char []S, char []N)
{
   
    // Traverse the String
    for (int i = 0; i < S.Length; i++)
    {
 
        // Stores integer value of
        // character in String N
        int a = (int)(N[i]) - '0';
 
        // Stores ASCII value of
        // character in String S
        int b = (int)(S[i]) + a;
 
        // If b exceeds 122
        if (b > 122)
            b -= 26;
 
        // Replace the character
        S[i] = (char)(b);
    }
 
    // Print resultant String
    Console.Write(S);
}
 
// Driver Code
public static void Main(String[] args)
{
   
    // Given Strings
    String S = "sun", N = "966";
 
    // Function call to modify
    // String S by given operations
    addASCII(S.ToCharArray(), N.ToCharArray());
}
}
 
// This code is contributed by shikhasingrajput

Javascript

<script>
      // JavaScript program for the above approach
 
      // Function to modify a given string
      // by adding ASCII value of characters
      // from a string S to integer values of
      // same indexed characters in string N
      function addASCII(S, N) {
        var newStr = new Array(S.length);
        // Traverse the string
        for (var i = 0; i < S.length; i++) {
          // Stores integer value of
          // character in string N
          var a = N[i].charCodeAt(0) - "0".charCodeAt(0);
 
          // Stores ASCII value of
          // character in string S
          var b = S[i].charCodeAt(0) + a;
 
          // If b exceeds 122
          if (b > 122) b -= 26;
 
          // Replace the character
          newStr[i] = String.fromCharCode(b);
        }
 
        // Print resultant string
        document.write(newStr.join(""));
      }
 
      // Driver Code
      // Given strings
      var S = "sun",
        N = "966";
 
      // Function call to modify
      // string S by given operations
      addASCII(S, N);
    </script>
Producción: 

bat

 

Complejidad temporal: O(|S|)
Espacio auxiliar: O(1) 

Publicación traducida automáticamente

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