题目链接
吐槽:
这题我还没搞懂题意,峡哥已经A了,猜了个规律就过了,,然后跟我说了下题意,我第一反应DP可以搞,,写了几分钟过了,看题半小时,做题五分钟啊,,,,
题意:
- 给你一个只包含’a’与’b’的字符串,
- 你需要从下标1~n,依次决定对当前下标i选择两种操作之一:
0.保持不变
1.将1~i这个前缀翻转,比如abb -> bba - 输出能获得的最小字典序的字符串,并输出操作 (001表示前两次保持不变,第三次翻转)
思路:
dp思路
- 定义状态: 设一个dp[2][i] ,dp[0][i]表示到下标i为止能获得最长前缀a的操作,dp[1][i]表示到下标i为止能获得最长后缀a的操作。(这里dp数组存的是一个‘0’,‘1’字符串,表示操作)。
- 状态转移:
1.考虑当前添加一个’a’,那么dp[0][i]=dp[1][i-1]+‘1’,dp[1][i]=dp[1][i-1]+‘0’
2.考虑当前添加一个’b’,那么dp[0][i]=dp[0][i-1]+