Note:
如果是字母 I 就放个当前能放的最小的数字
如果是字母D 就放个当前能放得最大的数字
一定能满足条件 用两个指针来记录最大的和最小的数字,放完一个更新一回
最后两个指针指到一样 放到最后一位即可
代码如下:
class Solution {
public:
vector<int> diStringMatch(string s) {
int l = 0, r = s.size();
vector<int> ans;
for(int i = 0; i < s.size(); i ++){
if(s[i] == 'I')
ans.push_back(l ++);
else if(s[i] == 'D')
ans.push_back(r --);
}
ans.push_back(l);
return ans;
}
};