当前位置:网站首页>884 · 寻找排列
884 · 寻找排列
2022-07-19 05:53:00 【yinhua405】
现在,给你一个由字符'D'和'I'构成的加密签名。'D'表示两个数字是递减关系,'I'表示两个数字是递增关系。我们的加密签名是由一个特殊的整数数组生成的。这个数组含有从1到n(n是加密签名的长度加1)的所有数字,并且每个数字只出现一次。举例来说,加密签名"DI"可以有数组[2,1,3]或者[3,1,2]生成,但是不能由数组[3,2,4]或者[2,1,3,4]生成。[3,2,4]和[2,1,3,4]都不能生成"DI"这个特定的加密签名。
找到能够生成输入加密签名的[1, 2, ... n]的最小字典序的排列。
- 输入字符串只含有
'D'
和'I'
。 - 输入字符串的长度是一个正整数,并且长度不会超过
10,000
。
样例
样例 1:
输入: str = "DI"
输出: [2,1,3]
样例 2:
输入: str = "I"
输出: [1,2]
vector<int> findPermutation(string &s)
{
int size = s.size();
vector<int>ret;
for (int i = 1; i <= size+1; i++)
{
ret.push_back(i);
}
int cur = 0;
while (cur < size)
{
if (s[cur] == 'D')
{
int start = cur;
while (cur < size && s[cur] == 'D')
{
cur++;
}
reverse(ret.begin() + start, ret.begin() + cur+1);
}
else
{
cur++;
}
}
return ret;
}
边栏推荐
猜你喜欢
随机推荐
ORC索引的位置信息
亲测 运营版 在线考试 online_testck163 2.7.18功能强大的在线考试模块
Introduction to impala metadata
Apache Impala 4.1概览
GC tuning principle of JVM (9)
Codeforces Round #807 (Div. 2)(A.B.C)
整型类型128转byte为什么是-128
8day
JMeter project practice: BeanShell processes the obtained results 64base processing
用float特性填满整个正方形
GC tuning principle of JVM (14)
19day
Summary of important knowledge points of management
微信小程序应用开发赛作品综合开发记录——晋鹿文旅(云开发——概览)
FPGA buzzer plays the music "sea of flowers"
类型详解(枚举+联合)
Impala元数据缓存的生命周期
redisson分布式锁续期因为网络原因失败了,导致业务还在执行但锁没续期而自动释放了。
13day
17day