leetcode761 Special Binary String
题目连接
https://leetcode.com/problems/special-binary-string/description/
题目大意
定义Special Binary String:
- 1和0的数量一定相等
- 所有以1开始的前缀一定是1的数量大于等于0的数量。
现在给出一个Special Binary String,可以任意交换满足Special Binary String的子串,求满足条件的Special Binary String字典序最大的串。
做法
题目很费解……看了好久才看懂……
当时刚看到这道题的时候,有点一头雾水无从下手。想着这里要交换交换,还是要统计统计所有的前缀情况……?
看了一下别人的题解,发现思路挺清晰的。把这个串的定义运用到了极致。
对于每个Special Binary String,递归进去处理他们的子串。
让每个Special Binary String子串,进行排序,按照字典序最大的方法去加和他们。
那么原串Special Bianry String一定是字典序最大的。
只要这样递归操作下去即可。
这个方法一开始想了好久,觉得对于100
、110
,这种情况,好像处理有问题——回过头来看看这个题目的意思和定义,就秒懂了。。
代码
ACcode
1 |
|