> For the complete documentation index, see [llms.txt](https://jenhsuan.gitbook.io/algorithm/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jenhsuan.gitbook.io/algorithm/leetcode/942.-di-string-match.md).

# 942. DI String Match

## 1.問題

* 給予一個只有'I'或'D'的字串, 回傳任意list:
  * 如果S\[i]為'I', 則A\[i] < A\[i + 1]
  * 如果S\[i]為'D', 則A\[i] > A\[i + 1]

![](https://901207480-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LGKoChvN9am4__HCIRK%2F-LSKCON8ukZ-G6fRJpoq%2F-LSKDfO88JFeIBDc5TnC%2F2018112701.jpg?alt=media\&token=3755d94b-ebe2-4f63-9ee2-d240f18dd29e)

## 2.想法

* 當I時, 插入前面的數字; 當D時, 插入後面的數字

## 3.程式碼

```
class Solution {
public:
    vector<int> diStringMatch(string S) {
        vector<int> res;
        int n = S.length(), f = 0, b = n;
        for (int i = 0; i <= n; i++) {
            if (S[i] == 'I') {
                res.push_back(f);
                f++;
            } else {
                res.push_back(b);
                b--;
            }
        }
        
        return res;
    }
};
```
