LeetCode: Shuffle String

Question

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.

Example 1:
Input: s = "codeleet", indices = [4,5,6,7,0,2,1,3]
Output: "leetcode"

Example 2:
Input: s = "abc", indices = [0,1,2]
Output: "abc"

Solution

def restore_string(s, indices)
  dict = {}
  ans = []
  size = s.length
  values = s.split('')
  (0...size).each do |index|
    dict[indices[index]] = values[index]
  end
  (0...size).each do |index|
    ans << dict[index]
  end
  ans.join
end