942 LeetCode 增减字符串匹配

题目描述:
在这里插入图片描述

思路:
题目隐含的一个要求就是:返回的数组中的数字没有重复,在0—S.size()之中;
首先判断是"I"的话,存放0—S.size()中间的最小值;那么此时区间变化(变成1—S.size())
如果是"D"的话,存放0—S.size()中间的最大值;那么此时区间变化(变成0—S.size()-1)
依次类推;

代码如下:

class Solution {
public:
    vector<int> diStringMatch(string S) {
        vector<int>res;
        int max_num=S.size();
        int min_num=0;
        for(int i=0;i<S.size();i++){
            if(S[i]=='I'){
            res.push_back(min_num);
            min_num++;}
            if(S[i]=='D'){
            res.push_back(max_num);
            max_num--;}
        }
        res.push_back(min_num);
        return res;
    }
};
发布了158 篇原创文章 · 获赞 0 · 访问量 1618

猜你喜欢

转载自blog.csdn.net/peachzy/article/details/104588507