Category : Easy

**Problem**

Given a string `s`

and an integer array `indices`

of the **same length**.

The string `s`

will be shuffled such that the character at the `i`

position moves to ^{th}`indices[i]`

in the shuffled string.

Return *the shuffled string*.

https://leetcode.com/problems/shuffle-string/

**Examples**

**Example 1:**

1 2 3 | Input: s = "codeleet", indices = [4,5,6,7,0,2,1,3] Output: "leetcode" Explanation: As shown, "codeleet" becomes "leetcode" after shuffling. |

**Example 2**:

1 2 3 | Input: s = "abc", indices = [0,1,2] Output: "abc" Explanation: After shuffling, each character remains in its position. |

**Example 3:**

1 2 | Input: s = "aiohn", indices = [3,1,4,2,0] Output: "nihao" |

**Example 4:**

1 2 | Input: s = "aaiougrt", indices = [4,0,2,6,7,3,1,5] Output: "arigatou" |

**Example 5:**

1 2 | Input: s = "art", indices = [1,0,2] Output: "rat" |

**Constraints**

`s.length == indices.length == n`

`1 <= n <= 100`

`s`

contains only lower-case English letters.`0 <= indices[i] < n`

- All values of
`indices`

are unique (i.e.`indices`

is a permutation of the integers from`0`

to`n - 1`

).

**Solution Approach**

In this question, we are given a String and an array and we just need to place the string characters according to the position given in the indices array.

To achieve the same I created a character array which will hold my final string of characters which I will be returning from the function. I ran a loop over the indices array and I inserted the character into its correct position as required in the question by placing the value at index dereferenced from the indices array one by one. Then at the end, I converted that character array as a string and returned the same.

The time complexity of this solution is O(n) as we are going through the array only once so it is a time friendly solution.

**Solution code**

1 2 3 4 5 6 7 8 9 10 | class Solution { public String restoreString(String s, int[] indices) { char []answer = new char[indices.length]; for(int i = 0; i < indices.length; i++) { answer[indices[i]] = s.charAt(i); } return new String(answer); } } |

For more Leetcode explained solutions visit Leetcode Solutions. If you like capture the flag challenges visit here.

Check out my socials below in the footer. Feel free to ask any doubts in the comment section or contact me via Contact page I will surely respond. Happy Leetcoding