A permutation perm of n + 1 integers of all the integers in the range [0, n] can be represented as a string s of length n where:
s[i] == 'I' if perm[i] < perm[i + 1], and s[i] == 'D' if perm[i] > perm[i + 1].
Given a string s, reconstruct the permutation perm and return it. If there are multiple valid permutations perm, return any of them.
Example 1:
Input: s = "IDID" Output: [0,4,1,3,2]
Example 2:
Input: s = "III" Output: [0,1,2,3]
Example 3:
Input: s = "DDI" Output: [3,2,0,1]
Constraints:
1 <= s.length <= 105 s[i] is either 'I' or 'D'.
Solution
class Solution {
/**
* @param String $s
* @return Integer[]
*/
function diStringMatch($s) {
if( strlen($s) < 1 || strlen($s) > pow(10,5) ) return [];
$I = 0;
$D = strlen($s);
$perm = [];
for( $i = 0; $i < strlen($s); $i++ ) {
$perm[] = $s[$i] == 'I' ? $I++ : $D--;
}
$perm[] = $s[strlen($s)-1] == "I" ? $I++ : $D--;
return $perm;
}
}
5,811 thoughts on “DI String Match”