# Generate string by incrementing character of given string by number present at corresponding index of second string

• Last Updated : 07 Jan, 2022

Given two strings S[] and N[] of the same size, the task is to update string S[] by adding the digit of string N[] of respective indices.

Examples:

Input: S = “sun”, N = “966”
Output: bat

Input: S = “apple”, N = “12580”
Output: brute

Approach: The idea is to traverse the string S[] from left to right. Get the ASCII value of string N[] and add it to the ASCII value of string S[]. If the value exceeds 122, which is the ASCII value of the last alphabet ‘z’. Then subtract the value by 26, which is the total count of English alphabets. Update string S with the character of ASCII value obtained. Follow the steps below to solve the problem:

• Iterate over the range [0, S.size()) using the variable i and perform the following tasks:
• Initialize the variables a and b as the integer and ascii value of N[i] and S[i].
• If b is greater than 122 then subtract 26 from b.
• Set S[i] as char(b).
• After performing the above steps, print the value of S[] as the answer.

Below is the implementation of the above approach.

## C++

 `// C++ program for the above approach` `#include ``using` `namespace` `std;` `// Function to update string``string updateStr(string S, string N)``{``    ``for` `(``int` `i = 0; i < S.size(); i++) {` `        ``// Get ASCII value``        ``int` `a = ``int``(N[i]) - ``'0'``;``        ``int` `b = ``int``(S[i]) + a;` `        ``if` `(b > 122)``            ``b -= 26;` `        ``S[i] = ``char``(b);``    ``}``    ``return` `S;``}` `// Driver Code``int` `main()``{``    ``string S = ``"sun"``;``    ``string N = ``"966"``;``    ``cout << updateStr(S, N);``    ``return` `0;``}`

## Java

 `// Java code to implement above approach``import` `java.util.*;``public` `class` `GFG {` `  ``// Function to update string``  ``static` `String updateStr(String S, String N)``  ``{``    ``String t = ``""``;``    ``for` `(``int` `i = ``0``; i < S.length(); i++) {` `      ``// Get ASCII value``      ``int` `a = (``int``)(N.charAt(i) - ``'0'``);``      ``int` `b = (``int``)(S.charAt(i) + a);` `      ``if` `(b > ``122``)``        ``b -= ``26``;` `      ``char` `x = (``char``)b;``      ``t +=x;``    ``}``    ``return` `t;``  ``}` `  ``// Driver code``  ``public` `static` `void` `main(String args[])``  ``{``    ``String S = ``"sun"``;``    ``String N = ``"966"``;``    ``System.out.println(updateStr(S, N));` `  ``}``}` `// This code is contributed by Samim Hossain Mondal.`

## Python3

 `# Python code for the above approach` `# Function to update string``def` `updateStr(S, N):``    ``S ``=` `list``(S)``    ``for` `i ``in` `range``(``len``(S)):` `        ``# Get ASCII value``        ``a ``=` `ord``(N[i]) ``-` `ord``(``'0'``)``        ``b ``=` `ord``(S[i]) ``+` `a` `        ``if` `(b > ``122``):``            ``b ``-``=` `26` `        ``S[i] ``=` `chr``(b)``    ``return` `"".join(S)` `# Driver Code` `S ``=` `"sun"``N ``=` `"966"``print``(updateStr(S, N))` `# This code is contributed by Saurabh Jaiswal`

## C#

 `// C# code to implement above approach``using` `System;``public` `class` `GFG {` `  ``// Function to update string``  ``static` `String updateStr(String S, String N)``  ``{``    ``String t = ``""``;``    ``for` `(``int` `i = 0; i < S.Length; i++) {` `      ``// Get ASCII value``      ``int` `a = (``int``)(N[i] - ``'0'``);``      ``int` `b = (``int``)(S[i] + a);` `      ``if` `(b > 122)``        ``b -= 26;` `      ``char` `x = (``char``)b;``      ``t +=x;``    ``}``    ``return` `t;``  ``}` `  ``// Driver code``  ``public` `static` `void` `Main(String []args)``  ``{``    ``String S = ``"sun"``;``    ``String N = ``"966"``;``    ``Console.WriteLine(updateStr(S, N));` `  ``}``}` `// This code is contributed by shikhasingrajput`

## Javascript

 ``
Output
`bat`

Time Complexity: O(|S|)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up