Modify characters of a string by adding integer values of same-indexed characters from another given string

Given two strings S and N of the same length, consisting of alphabetical and numeric characters respectively, the task is to generate a new string obtained by adding the integer value of each character of string N with the ASCII value of the same indexed character of string S. Finally, print the resultant string.
Note: If the sum exceeds 122, then subtract 26 from the sum and print the resultant character.
Examples:
Input: S = “sun”, N = “966”
Output: “bat”
Explanation:
ASCII value of ‘s’ = 115.
Therefore, 115 + 9 = 124 – 26 = 98. Therefore, equivalent character is’b’.
ASCII value of ‘u’ = 117.
Therefore, 117 + 6 = 123 – 26 = 97. Therefore, equivalent character is ‘a’.
ASCII value of ‘n’ = 110.
Therefore, 110 + 6 = 116. Therefore, equivalent character is ‘t’.Input: S = “apple”, N = “12580”
Output: “brute”
Approach: Follow the steps below to solve the problem:
- Traverse the string S:
- Convert the current character of string N to its equivalent integer value.
- Add the obtained integer value to the equivalent ASCII value of the current character in string S.
- If the value exceeds 122, which is the ASCII value of the last alphabet ‘z’, then subtract the value by 26.
- Update string S by replacing a current character with the character whose ASCII value is equal to the value obtained.
- Print the resultant string after completing the above steps.
Below is the implementation of the above approach:
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 Nvoid 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 Codeint 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 approachimport 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 Nstatic 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 Codepublic 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 Ndef 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 Codeif __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 approachusing 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 Nstatic 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 Codepublic 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
Time Complexity: O(|S|)
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!



