2022-10-17:特殊的二进制序列是具有以下两个性质的二进制序列: 0 的数量与 1 的数量相等。 二进制序列的每一个前缀码中 1 的数量要大于等于 0 的数量。 给定一个特殊的二进制序列 S,以
2022-10-17:特殊的二进制序列是具有以下两个性质的二进制序列:0 的数量与 1 的数量相等。二进制序列的每一个前缀码中 1 的数量要大于等于 0 的数量。给定一个特殊的二进制序列 S,以字符串形式表示。定义一个操作 为首先选择 S 的两个连续且非空的特殊的子串,然后将它们交换。(两个子串为连续的当且仅当第一个子串的最后一个字符恰好为第二个子串的第一个字符的前一个字符)在任意次数的操作之后,交换后的字符串按照字典序排列的最大的结果是什么?输入: S = "11011000"。输出: "11100100"。
答案 2022-10-17:
1 认为是左括号,0 认为是右括号。嵌套递归模型。两两交换,其本质是冒泡排序。力扣 761。经测试,rust 和 go 的速度最快,go 的内存占用最低。
代码用 rust 编写。代码如下:
复制代码
执行结果如下:
版权声明: 本文为 InfoQ 作者【福大大架构师每日一题】的原创文章。
原文链接:【http://xie.infoq.cn/article/c5ebf558371772e0f93da988c】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论