• Weekly Contest 111-------->942. DI String Match


    Given a string S that only contains "I" (increase) or "D" (decrease), let N = S.length.

    Return any permutation A of [0, 1, ..., N] such that for all i = 0, ..., N-1:

    • If S[i] == "I", then A[i] < A[i+1]
    • If S[i] == "D", then A[i] > A[i+1]

    Example 1:

    Input: "IDID"
    Output: [0,4,1,3,2]
    

    Example 2:

    Input: "III"
    Output: [0,1,2,3]
    

    Example 3:

    Input: "DDI"
    Output: [3,2,0,1]

    Note:

    1. 1 <= S.length <= 10000
    2. S only contains characters "I" or "D".

    Approach #1:

    class Solution {
    public:
        vector<int> diStringMatch(string S) {
            int len = S.length();
            vector<int> ans(len+1, 0);
            int index = 0;
            for (int i = 0; i < len; ++i)
                if (S[i] == 'I') ans[i] = index++;
            ans[len] = index++;
            for (int i = len-1; i >= 0; --i)
                if (S[i] == 'D') ans[i] = index++;
            return ans;     
        }
    };
    

      

    永远渴望,大智若愚(stay hungry, stay foolish)
  • 相关阅读:
    课二 计算机硬件组成余下
    课一 计算机硬件组成
    电梯演讲视频
    团队成员个人介绍
    day-65Django
    day-64Django
    day-63Django
    day-62Django
    day-61Django
    day-60Django
  • 原文地址:https://www.cnblogs.com/h-hkai/p/9979362.html
Copyright © 2020-2023  润新知