算法笔试模拟题精解之“变化的字符” <63算法笔试模拟题精解之“变化的字符”贡献者 | 猿圈简介:把所有数据处理一遍再求一遍最大值即可。题目描述等级:困难知识点:DP查看题目:变化的字符Tom 又碰到了一道字符串的题目。有一个字符串 s(1<=|s|<=3e5,|s| 为奇数 ),这个字符串只包含 0,1 和字符 '.',这个 '.' 字符可以任意变为 0 或者 1。现在可以通过一些操作来缩短这个字符串,每次操作可以任意选择连续的三个字符,然后将这个连续的三个字符变成出现数量最多的那个字符 ( 比如 001 变为 0,101 变为 1,1.0 可以变为 0 也可以变为 1)。通过更改字符 '.',问通过 (|s|-1)/2 次操作后最终这个字符串只剩下一个 1 的方案有多少种,答案对 1e9+7 取模。输入一行字符串 s输出一个数表示方案数。64>算法笔试模拟题精解之“变化的字符”示例 1输入:"1.0.1"输出:4解题方法:操作次数为,1.0.1 长度为 5 就是可以操作 2 次。分别可以把字符串变为 10001 10011 11001 11011,这四种都可以使得最后只剩下 1,所
目录
171
0
收起右侧 展开右侧
程序员面试宝典 > 算法笔试模拟题精解之“变化的字符”
  • 读书笔记
    我的笔记
    暂无相关笔记,快来写一篇吧!
点击浏览下一章>>