题目:
算法思想:这题抛开顺序的话就很好理解,就是从0开始累加,同时从最大值开始递减,只是对于结果的顺序做了改变。所以遇到I就从0开始累加,遇到D就开始从最大值递减,最后把最后的值插入到结果数组。
代码:
vector<int> diStringMatch(string S) {
int a = 0;
int b = S.length();
vector<int> result;
for(int i = 0;i < S.length();i++)
{
if(S[i] == 'I')
result.push_back(a++);
else
result.push_back(b--);
}
result.push_back(a);
return result;
}