由范围 [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,则返回其中 任何一个 。
class Solution {
public:
vector<int> diStringMatch(string s) {
//用n储存字符串长度
int n=s.length();
//存储输出的数组
vector<int>ans;
//从左往右
int l=0;
//从右往左
int r=n;
//遍历字符串
for(auto i=0;i<n;i++){
//如果s为I,从左开始插,更新左值
if(s[i]=='I'){
ans.push_back(l);
l++;
}
//如果s为D,从右开始插,更新右值
if(s[i]=='D'){
ans.push_back(r);
r--;
}
}
//插入最后一个值
ans.push_back(l)
return ans;
}
};
1112

被折叠的 条评论
为什么被折叠?



