每日一题-LeetCode942-增减字符串匹配-贪心-字符串-双指针

原题链接
在这里插入图片描述

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;
    }
};

版权声明:本文为Mr_Ghost812原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。