列表

详情


942. 增减字符串匹配

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

给定一个字符串 s ,重构排列 perm 并返回它。如果有多个有效排列perm,则返回其中 任何一个

 

示例 1:

输入:s = "IDID"
输出:[0,4,1,3,2]

示例 2:

输入:s = "III"
输出:[0,1,2,3]

示例 3:

输入:s = "DDI"
输出:[3,2,0,1]

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: vector<int> diStringMatch(string s) { } };

golang 解法, 执行用时: 8 ms, 内存消耗: 6.2 MB, 提交时间: 2020-11-04 22:58:30

func diStringMatch(S string) []int {
    left, right := 0, len(S)
    var rs []int
    for _, c := range S {
        if c == 'I' {
            rs = append(rs, left)
            left++
        } else {
            rs = append(rs, right)
            right--
        }
    }
    return append(rs, left)
}

python3 解法, 执行用时: 72 ms, 内存消耗: 14.5 MB, 提交时间: 2020-11-04 22:48:37

class Solution:
    def diStringMatch(self, S: str) -> List[int]:
        left, right = 0, len(S)
        rs = []
        for c in S:
            if c == 'I':
                rs.append(left)
                left += 1
            else:
                rs.append(right)
                right -= 1
        rs.append(right)
        return rs

上一题