# 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:

## C++

 `// 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

 `// 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  `

## Python3

 `# 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#

 `// 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  `

## PHP

 ` 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.

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.