All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g1501_1600.s1528_shuffle_string.Solution Maven / Gradle / Ivy

There is a newer version: 1.38
Show newest version
package g1501_1600.s1528_shuffle_string;

// #Easy #Array #String #2022_04_09_Time_2_ms_(54.77%)_Space_45_MB_(34.67%)

/**
 * 1528 - Shuffle String\.
 *
 * Easy
 *
 * You are 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:**
 *
 * ![](https://assets.leetcode.com/uploads/2020/07/09/q1.jpg)
 *
 * **Input:** s = "codeleet", `indices` = [4,5,6,7,0,2,1,3]
 *
 * **Output:** "leetcode"
 *
 * **Explanation:** As shown, "codeleet" becomes "leetcode" after shuffling.
 *
 * **Example 2:**
 *
 * **Input:** s = "abc", `indices` = [0,1,2]
 *
 * **Output:** "abc"
 *
 * **Explanation:** After shuffling, each character remains in its position.
 *
 * **Constraints:**
 *
 * *   `s.length == indices.length == n`
 * *   `1 <= n <= 100`
 * *   `s` consists of only lowercase English letters.
 * *   `0 <= indices[i] < n`
 * *   All values of `indices` are **unique**.
**/
public class Solution {
    public String restoreString(String s, int[] indices) {
        char[] c = new char[s.length()];
        for (int i = 0; i < s.length(); i++) {
            int index = findIndex(indices, i);
            c[i] = s.charAt(index);
        }
        return new String(c);
    }

    private static int findIndex(int[] indices, int i) {
        for (int j = 0; j < indices.length; j++) {
            if (indices[j] == i) {
                return j;
            }
        }
        return 0;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy