LeetCode 1528:Shuffle String

LeetCode:1528
標籤:Array
難度:Easy

 

public class LeetCode1528 {
	/*
	 * Easy
	 * 1528. Shuffle String
	 * 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"
	 * Explanation: As shown, "codeleet" becomes "leetcode" after shuffling.
	 * 
	 * Example 2:
	 * Input: s = "aaiougrt", indices = [4,0,2,6,7,3,1,5]
	 * Output: "arigatou"
	 */
    public static void main(String[] args) {
        String inputStr = "aaiougrt";
        int[] inputArr = {4,0,2,6,7,3,1,5};
        String res = restoreString(inputStr, inputArr);
        System.out.print("res: " + res);
		
    }
	
    public static String restoreString(String s, int[] indices) {
    	Map<Integer, String> map = new HashMap<Integer, String>();
    	StringBuilder sb = new StringBuilder();
    	
    	for(int i = 0 ; i < s.length() ; i++) {
            map.put(indices[i], (i+1) == s.length()? s.substring(i) : s.substring(i, i+1));
    	}
    	
    	for(int i = 0 ; i < map.size() ; i++) {
            sb.append(map.get(i));
    	}
    	
        return sb.toString();
    }
}