Program to find the Encrypted word

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 -> e

Input: 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++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to implement 
// the above approach
  
#include <bits/stdc++.h>
using namespace std;
  
// Function to find the encrypted string
void 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 code
int main()
{
    string s = "abcd";
    findWord(s, s.length());
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to implement the above approach
import java.util.*;
import java.io.*;
  
class GFG
{
  
// Static function declared to find
// the encrypted string
public 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 code
public static void main(String args[])
{
    String s = "abcd";
    findWord(s, s.length());
}
}
  
// This code is contributed by Animesh_Gupta

chevron_right


Output:

bdee

Time Complexity: O(N)



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.



Improved By : Animesh_Gupta