# Replace every character of string by character whose ASCII value is K times more than it

Given a string str consisting of lowercase letters only and an integer k, the task is to replace every character of the given string by character whose ASCII value is k times more than it. If ASCII value exceeds ‘z’, then start checking from ‘a’ in a cyclic manner.

Examples:

Input: str = “abc”, k = 2
Output: cde
a is moved by 2 times which results in character c
b is moved by 2 times which results in character d
c is moved by 2 times which results in character e

Input: str = “abc”, k = 28
Output: cde
a is moved 25 times, z is reached. Then 26th character will be a, 27-th b and 28-th c.
b is moved 24 times, z is reached. 28-th is d.
b is moved 23 times, z is reached. 28-th is e.

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach: Iterate for every character in the string and perform the below steps for each character:

• Add k to the ASCII value of character str[i].
• If it exceeds 122, then perform a modulus operation of k with 26 to reduce the number of steps, as 26 is the maximum number of shifts that can be performed in a rotation.
• To find the character, add k to 96. Hence the character with ASCII value k+96 will be the new character.

Repeat the above steps for every character of the given string.

Below is the implementation of the above approach:

 `// CPP program to move every character ` `// K times ahead in a given string ` `#include ` `using` `namespace` `std; ` ` `  `// Function to move string character ` `void` `encode(string s,``int` `k){ ` ` `  `    ``// changed string ` `    ``string newS; ` ` `  `    ``// iterate for every characters ` `    ``for``(``int` `i=0; i 122){ ` `            ``k -= (122-val); ` `            ``k = k % 26; ` `            ``newS += ``char``(96 + k); ` `        ``} ` `        ``else` `            ``newS += ``char``(val + k); ` ` `  `        ``k = dup; ` `    ``} ` ` `  `    ``// print the new string ` `    ``cout<

 `// Java program to move every character  ` `// K times ahead in a given string  ` ` `  `class` `GFG { ` ` `  `// Function to move string character  ` `    ``static` `void` `encode(String s, ``int` `k) { ` ` `  `        ``// changed string  ` `        ``String newS = ``""``; ` ` `  `        ``// iterate for every characters  ` `        ``for` `(``int` `i = ``0``; i < s.length(); ++i) { ` `            ``// ASCII value  ` `            ``int` `val = s.charAt(i); ` `            ``// store the duplicate  ` `            ``int` `dup = k; ` ` `  `            ``// if k-th ahead character exceed 'z'  ` `            ``if` `(val + k > ``122``) { ` `                ``k -= (``122` `- val); ` `                ``k = k % ``26``; ` `                 `  `                ``newS += (``char``)(``96` `+ k); ` `            ``} ``else` `{ ` `                ``newS += (``char``)(val + k); ` `            ``} ` ` `  `            ``k = dup; ` `        ``} ` ` `  `        ``// print the new string  ` `        ``System.out.println(newS); ` `    ``} ` ` `  `// Driver Code  ` `    ``public` `static` `void` `main(String[] args) { ` `        ``String str = ``"abc"``; ` `        ``int` `k = ``28``; ` ` `  `        ``// function call  ` `        ``encode(str, k); ` `    ``} ` `} ` ` `  `// This code is contributed by Rajput-JI  `

 `# Python program to move every character  ` `# K times ahead in a given string  ` ` `  `# Function to move string character ` `def` `encode(s, k): ` `     `  `    ``# changed string  ` `    ``newS ``=` `"" ` `     `  `    ``# iterate for every characters ` `    ``for` `i ``in` `range``(``len``(s)):  ` `         `  `        ``# ASCII value  ` `        ``val ``=` `ord``(s[i])  ` `         `  `        ``# store the duplicate  ` `        ``dup ``=` `k  ` `         `  `        ``# if k-th ahead character exceed 'z'  ` `        ``if` `val ``+` `k>``122``:  ` `            ``k ``-``=` `(``122``-``val)  ` `            ``k ``=` `k ``%` `26` `            ``newS ``+``=` `chr``(``96` `+` `k)  ` `             `  `        ``else``:  ` `            ``newS ``+``=` `chr``(val ``+` `k)  ` `         `  `        ``k ``=` `dup  ` `     `  `    ``# print the new string  ` `    ``print` `(newS)  ` `             `  `# driver code      ` `str` `=` `"abc"` `k ``=` `28` ` `  `encode(``str``, k) `

 `// C# program to move every character  ` `// K times ahead in a given string  ` `using` `System; ` `public` `class` `GFG {  ` ` `  `// Function to move string character  ` `    ``static` `void` `encode(String s, ``int` `k) { ` ` `  `        ``// changed string  ` `        ``String newS = ``""``; ` ` `  `        ``// iterate for every characters  ` `        ``for` `(``int` `i = 0; i < s.Length; ++i) { ` `            ``// ASCII value  ` `            ``int` `val = s[i]; ` `            ``// store the duplicate  ` `            ``int` `dup = k; ` ` `  `            ``// if k-th ahead character exceed 'z'  ` `            ``if` `(val + k > 122) { ` `                ``k -= (122 - val); ` `                ``k = k % 26; ` `                 `  `                ``newS += (``char``)(96 + k); ` `            ``} ``else` `{ ` `                ``newS += (``char``)(96 + k); ` `            ``} ` ` `  `            ``k = dup; ` `        ``} ` ` `  `        ``// print the new string  ` `        ``Console.Write(newS); ` `    ``} ` ` `  `// Driver Code  ` `    ``public` `static` `void` `Main() { ` `        ``String str = ``"abc"``; ` `        ``int` `k = 28; ` ` `  `        ``// function call  ` `        ``encode(str, k); ` `    ``} ` `} ` ` `  `// This code is contributed by Rajput-JI  `

 ` 122) ` `        ``{ ` `            ``\$k` `-= (122 - ``\$val``); ` `            ``\$k` `= ``\$k` `% 26; ` `            ``\$newS` `= ``\$newS``.``chr``(96 + ``\$k``); ` `        ``} ` `        ``else` `            ``\$newS` `= ``\$newS``.``chr``(``\$val` `+ ``\$k``); ` ` `  `        ``\$k` `= ``\$dup``; ` `    ``} ` ` `  `    ``// print the new string ` `    ``echo` `\$newS``; ` `} ` ` `  `// Driver code ` ` `  `\$str` `= ``"abc"``; ` `\$k` `= 28; ` ` `  `// function call ` `encode(``\$str``, ``\$k``); ` ` `  `// This code is contributed by ita_c ` `?> `

Output:
```cde
```

Time Complexity: O(N), where N is the length of the string.

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

Practice Tags :