问题描述:
样例输入:
代码如下:双指针+贪心 每次取最小值或最大值
class Solution {
public int[] diStringMatch(String s) {
int n = s.length(), l = 0, r = n, index = 0;
int[] ans = new int[n + 1];
for (int i = 0; i < n; i++) {
char c = s.charAt(i);
if (c == 'I') ans[index++] = l++;
else ans[index++] = r--;
}
ans[index] = l; // 最后 l == r
return ans;
}
}
结果如下: