# Restore original String from given Encrypted String by the given operations

• Last Updated : 10 Mar, 2021

Given a string str and a positive integer N, the task is to reverse N characters and skip N characters until the end of the string to generate the encrypted message.

Examples:

Input: str = “ihTs suohld ebeas!y”, K = 3
Output: This should be easy!
Explanation:
Reverse “ihT” -> “Thi”
“s” remains the same
“uoh” -> “hou”, and so on.

Input: str = “!ysae eb dluohs sihT”, K = 30
Output: This should be easy!
Explanation:
Since 30 is larger than the length of the given string(= 20), just print the reverse of the string.

Approach: Follow the steps below to solve the problem:

• Traverse the given string.
• Increment the iterator by 2 * N.
• Reverse N characters step by step.

Below is the implementation of the above approach:

## C++

 `// C++ Program to implement``// the above approach``#include ``using` `namespace` `std;` `// Function to decrypt and print the``// original strings``int` `decryptString(string s, unsigned ``int` `N)``{` `    ``for` `(unsigned ``int` `i = 0; i < s.size();``         ``i += 2 * N) {``        ``auto` `end = s.begin() + i + N;``    `  `        ``// If length is exceeded``        ``if` `(i + N > s.size())``            ``end = s.end();` `        ``// Reverse the string``        ``reverse(s.begin() + i, end);``          ` `      ` `    ``}` `    ``cout << s << endl;``}` `// Driver Code``int` `main()``{``    ``string s = ``"ihTs suohld  ebeas!y"``;``    ``unsigned ``int` `N = 3;``    ``decryptString(s, N);` `    ``return` `0;``}`

## Python3

 `# Python3 program to implement``# the above approach` `# Function to decrypt and print the``# original strings``def` `decryptString(s, N):``    ` `    ``for` `i ``in` `range``(``0``, ``len``(s), ``2` `*` `N):``        ``if` `(i ``+` `N < ``len``(s)):``            ``end ``=` `s[i ``+` `N]``            ` `        ``# If length is exceeded``        ``if` `(i ``+` `N > ``len``(s)):``            ``end ``=` `s[``-``1``]` `        ``# Reverse the string``        ``if` `(i ``=``=` `0``):``            ``s ``=` `s[i ``+` `N ``-` `1``::``-``1``] ``+` `s[i ``+` `N:]``        ``else``:``            ``s ``=` `s[:i] ``+` `s[i ``+` `N ``-` `1``:i ``-` `1``:``-``1``] ``+` `s[i ``+` `N:]` `    ``print``(s)` `# Driver Code``if` `__name__ ``=``=` `"__main__"``:` `    ``s ``=` `"ihTs suohld  ebeas!y"``    ``N ``=` `3``    ` `    ``decryptString(s, N)` `# This code is contributed by ukasp`
Output:
`This should be easy!`

Time Complexity: O(N)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up