Acwing4996填充

题目

有一个长度为 n 的 01 串,其中有一些位置标记为 ?,这些位置上可以任意填充 0 或者 1,请问如何填充这些位置使得这个 01 串中出现互不重叠的 0011 子串最多,输出子串个数。

输入格式

输入一行包含一个字符串。

输出格式

输出一行包含一个整数表示答案。

数据范围

对于所有评测用例,1≤n≤106

输入样例:

yaml 复制代码
1110?0

输出样例:

复制代码
2

样例解释

如果在问号处填 0,则最多出现一个 00 和一个 11111000

代码与思路

这道题没什么需要讲的特别思路,就是要想到前后字符相等

java 复制代码
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String s = in.next();
        int res = 0;
        for (int i = 0;i < s.length() - 1;i ++) {
            char a = s.charAt(i), b = s.charAt(i + 1);
            if (a == b || a == '?' || b == '?') {
                res ++;
                i++;
            }
        }
        System.out.println(res);
    }
}
相关推荐
程序员清风3 分钟前
Redis Pipeline 和 MGET,如果报错了,他们的异常机制是什么样的?
java·后端·面试
审计侠30 分钟前
Go语言-初学者日记(四):包管理
开发语言·后端·golang
Aska_Lv37 分钟前
Linux---jstat命令的作用
后端
嘻嘻哈哈开森1 小时前
从零开始学习模型蒸馏
人工智能·后端
DataFunTalk1 小时前
大模型时代数据科学岗位的未来思考
前端·后端·算法
阮瑭雅1 小时前
Java语言的Web安全
开发语言·后端·golang
编程乐趣2 小时前
UnitOfWork:一个支持多数据库,工作单元模式、支持分布式事务以及支持 MySQL 多数据库/表分片的开源项目
后端
东方雴翾2 小时前
Dart语言的3D可视化
开发语言·后端·golang
嘉然今天吃粑粑柑2 小时前
实时通讯压缩调研
后端
雷渊2 小时前
深入分析学习 Arthas 在项目中的应用
java·后端·面试