「 每日一练,快乐水题 」942. 增减字符串匹配

Posted 谁吃薄荷糖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了「 每日一练,快乐水题 」942. 增减字符串匹配相关的知识,希望对你有一定的参考价值。

文章目录


🔴力扣原题:

942. 增减字符串匹配

🟠题目简述:

由范围 [0,n] 内所有整数组成的 n + 1 个整数的排列序列可以表示为长度为 n 的字符串 s ,其中:

如果 perm[i] < perm[i + 1] ,那么 s[i] == ‘I’
如果 perm[i] > perm[i + 1] ,那么 s[i] == ‘D’
给定一个字符串 s ,重构排列 perm 并返回它。如果有多个有效排列perm,则返回其中 任何一个 。

🟡解题思路:

  1. 贪心大法好;
  2. 根据题意可得I就是升序,D就是降序,
  3. 如果第一个字母为I,那么只要第一个数为0,那第二个数为任意数即可;
  4. 如果第一个字母为D,那么只要第一个数为n,那么第二数为任意数即可;
  5. 以此类推;
  6. over;

🟢C++代码:

class Solution 
public:
    vector<int> diStringMatch(string s) 
        int n = s.length();
        int min = 0, max = n;
        vector<int> vec;

        for(auto ch : s)
        
            if(ch == 'I')
            
                vec.push_back(min++);
            
            else
               
                vec.push_back(max--);
            
        

        vec.push_back(min);

        return vec;
    
;

🔵结果展示:

以上是关于「 每日一练,快乐水题 」942. 增减字符串匹配的主要内容,如果未能解决你的问题,请参考以下文章

「 每日一练,快乐水题 」1408. 数组中的字符串匹配

「 每日一练,快乐水题 」1773. 统计匹配检索规则的物品数量

「 每日一练,快乐水题 」1773. 统计匹配检索规则的物品数量

「 每日一练,快乐水题 」917. 仅仅反转字母

「 每日一练,快乐水题 」917. 仅仅反转字母

「 每日一练,快乐水题 」599. 两个列表的最小索引总和