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 ith
position moves to 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 from0
ton - 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