Given a string, the given string is an encrypted word, the task is to decrypt the given string to get the original word. Examples:
Input: str = “abcd”
Output: bdee
Explanation:
a -> a + 1 -> b
b -> b + 2 -> d
c -> c + 2 -> e
d -> d + 1 -> eInput: str = “xyz”
Output: yaa
Explanation:
x -> x + 1 -> y
y -> y + 2 -> a
z -> z + 1 -> a
Approach:
- Let the length of the string be n.
- then the encrypted string will be:
- Print the string after finding the scrypted word.
Below is the implementation of the above approach:
C++
// C++ program to implement // the above approach#include <bits/stdc++.h>using namespace std;// Function to find the encrypted stringvoid findWord(string c, int n){ int co = 0, i; // to store the encrypted string string s(n, ' '); for (i = 0; i < n; i++) { if (i < n / 2) co++; else co = n - i; // after 'z', it should go to a. if (c[i] + co <= 122) s[i] = (char)((int)c[i] + co); else s[i] = (char)((int)c[i] + co - 26); } cout << s;}// Driver codeint main(){ string s = "abcd"; findWord(s, s.length()); return 0;} |
Java
// Java program to implement the above approachimport java.util.*;import java.io.*;class GFG{// Static function declared to find// the encrypted stringpublic static void findWord(String c, int n){ int co = 0, i; // Character array to store //the encrypted string char s[] = new char[n]; for (i = 0; i < n ; i++) { if (i < n / 2) co++; else co = n - i; // after 'z', it should go to a. if ((c.charAt(i) + co) <= 122) s[i] = (char)((int)c.charAt(i) + co); else s[i] = (char)((int)c.charAt(i) + co - 26); } // storing the character array in the string. String str = Arrays.toString(s); System.out.println(str);}// Driver codepublic static void main(String args[]){ String s = "abcd"; findWord(s, s.length());}}// This code is contributed by Animesh_Gupta |
Python3
# Python3 program to implement # the above approach# Function to find the encrypted stringdef findWord(c, n): co = 0 # to store the encrypted string s = [0] * n for i in range(n): if (i < n / 2): co += 1 else: co = n - i # after 'z', it should go to a. if (ord(c[i]) + co <= 122): s[i] = chr(ord(c[i]) + co) else: s[i] = chr(ord(c[i]) + co - 26) print(*s, sep = "")# Driver codes = "abcd"findWord(s, len(s))# This code is contributed by SHUBHAMSINGH10 |
C#
// C# program to implement the above approachusing System;class GFG{// Static function declared to find// the encrypted stringpublic static void findWord(String c, int n){ int co = 0, i; // Character array to store // the encrypted string char []s = new char[n]; for (i = 0; i < n ; i++) { if (i < n / 2) co++; else co = n - i; // after 'z', it should go to a. if ((c[i] + co) <= 122) s[i] = (char)((int)c[i] + co); else s[i] = (char)((int)c[i] + co - 26); } // storing the character array in the string. String str = String.Join("",s); Console.WriteLine(str);}// Driver codepublic static void Main(String []args){ String s = "abcd"; findWord(s, s.Length);}}// This code is contributed by PrinciRaj1992 |
Javascript
// Function to find the encrypted stringfunction findWord(c, n) { let co = 0, i; // to store the encrypted string let s = new Array(n).fill(' '); for (i = 0; i < n; i++) { if (i < n / 2) co++; else co = n - i; // after 'z', it should go to a. if (c.charCodeAt(i) + co <= 122) s[i] = String.fromCharCode(c.charCodeAt(i) + co); else s[i] = String.fromCharCode(c.charCodeAt(i) + co - 26); } console.log(s.join(''));}// Driver codelet s = "abcd";findWord(s, s.length); |
bdee
Time Complexity: O(N)
Auxiliary Space: O(N), The extra space is used to store the result.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

