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>
bat
Complejidad temporal: O(|S|)
Espacio auxiliar: O(1)