首页 > 编程语言 >B. Replacement (python解)-codeforces

B. Replacement (python解)-codeforces

时间:2024-11-10 17:45:48浏览次数:5  
标签:字符 python codeforces zero input 替换 Replacement

B. Replacement (python解)-codeforces

原题链接:

B. Replacement

问题分析:

我们有两个二进制字符串:s(长度为 n)和 r(长度为 n-1)。根据游戏规则,我们需要在 s 上执行 n-1 次操作。在每次操作中,我们选择一个索引 k,使得 s[k]s[k+1] 不相同并将这两个字符替换为 r[i](第 i 次操作中 r 的第 i 个字符)。如果在某一步无法找到这样的 k,我们就输掉了游戏。目标是判断是否能成功完成所有 n-1 次操作。

思路:

  • 每次操作我们都需要将相邻的字符当中的一个改变为另一个字符。

    在可用的情况下,我们需要检查 s 中的 0 和 1 是否足够替换为 r 中的数据。

  • 由于需要找到相邻不同的字符,我们可以确保至少一个替换操作可以进行,这意味着我们需要在最终构建的 r 中的每一个字符能用 s 中的 0 和 1 进行合理替换。

  • 因此,我们需要在每次替换时要跟踪 10 的数量,以确保我们可以在 r 中按顺序找到这些字符。

  • 开始时获取 s10 的数量。

  • 对于r中的每个字符,检查是否可以合法进行替换:

    如果 1 的数量不足以替换 r[i](其中 r[i]1),则此时需要从 0 减去一个并确保 1 继续存在,反之亦然。

  • 如果在过程中任何时间点 10 的数量不足以保证替换,则最终输出 NO

  • 如果所有替换都能成功,输出 YES

代码:

for _ in range(int(input())):
    n = int(input())
    s = input()
    one = s.count("1")
    zero = s.count("0")
    ans = "YES"
    for ti in input():
        if one == 0 or zero == 0:
            ans = "NO"
            break
        one -= 1
        zero -= 1
        if ti == "1":
            one += 1
        else:
            zero += 1
    print(ans)

标签:字符,python,codeforces,zero,input,替换,Replacement
From: https://www.cnblogs.com/666-777-eto/p/18538263

相关文章

  • 【最新原创毕设】基于移动端的助农电商系统+08655(免费领源码)可做计算机毕业设计JAVA、
    基于移动端的助农电商系统的设计与实现摘要近年来,电子商务的快速发展引起了行业和学术界的高度关注。基于移动端的助农电商系统旨在为用户提供一个简单、高效、便捷的农产品购物体验,它不仅要求用户清晰地查看所需信息,而且还要求界面设计精美,使得功能与页面完美融合,从而提升......
  • (2024最新毕设合集)基于SpringBoot的梓锦社区疫苗接种服务系统+42529|可做计算机毕业设
    目 录摘要1绪论1.1选题背景与意义1.2开发现状1.3论文结构与章节安排2 梓锦社区疫苗接种服务系统系统分析2.1可行性分析2.1.1技术可行性分析2.1.2 经济可行性分析2.1.3法律可行性分析2.2系统功能分析2.2.1功能性分析2.2.2非功能性分析2.......
  • Python 入门-2
    1.函数输出函数:print 1.*values:表示可以一次性输出多个对象,输出多个对象时,需要用,隔开(英文逗号) 输出多个内容逗号隔开,英文符号 print('哈哈哈','嘻嘻嘻','嘿嘿嘿')2.sep:用来间隔多个对象,默认值是一个空格,可随意更换 print('哈哈哈','嘻嘻嘻','嘿嘿嘿',sep=',') sep......
  • Python中输入和输出的详细解读
    文章目录一、输入1.input()函数2.eval()函数3.多个变量的输入(1)split()函数(2)map()函数二、输出1.print()函数2.字符串格式化format()方法3.字符串格式化占位符%一、输入1.input()函数input()可以读取用户键盘输入的值,并以字符串的形式赋值给我们随意定义的变量中......
  • Python实现SSA智能麻雀搜索算法优化BP神经网络回归模型(优化权重和阈值)项目实战
    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后关注获取。1.项目背景随着人工智能技术的发展,机器学习算法在各个领域的应用越来越广泛。其中,神经网络作为一类重要的机器学习方法,在模式识别、图像处理、自然语言处......
  • Python爬虫学习笔记
    目录基础篇:HTTP:HTTP请求:请求行:请求头:请求体:HTTP响应:状态行:响应头:响应体:Requests库:GET请求:POST请求:HTML:HTML网页结构:HTML标签:网页解析:RegularExpression:元字符:量词:正则表达式:Re解析:实战案例:BeautifulSoup:安装:成员属性/函数:实战案例:Xpath:XML:语法:进阶篇:Cookie处理:防盗链:代理(很刑):飞......
  • Python中的数据结构:collections库详解
    Python中的数据结构:collections库详解在日常Python开发中,我们经常需要处理各种数据结构。Python标准库自带的collections模块,为我们提供了一系列高效且灵活的容器数据类型,比基础数据结构(如list,dict,set,tuple)功能更丰富,应用场景更广泛。本文将详解collections......
  • 【python】路径与文件管理:pathlib库的现代用法
    【Python】路径与文件管理:pathlib库的现代用法在日常的Python开发中,文件和路径管理是一个常见的任务。无论是读取文件,创建目录,还是获取文件属性,都涉及到路径操作。在Python的早期版本中,我们使用os和os.path模块来处理路径,但这些方法往往显得冗长且不够直观。为了......
  • C - Sowing Stones(python解)-atcoder
    C-SowingStones**(python解)-atcoder原题链接:C-SowingStones问题分析:每个包含石头的单元格X[i]中有A[i]个石头。我们需要确保每个单元格从1到N最终都有1个石头。思路:可用的石头总数必须等于单元格的总数。即需要N个石头,但只有ΣA[i](其中A[i]是单元格......
  • 如何用Python代码实现闪烁的爱心?
    你可以使用Python的turtle库来绘制一个闪烁的爱心。turtle库非常适合做简单的图形绘制,同时通过控制图形的显示和清除,可以模拟闪烁的效果。以下是一个简单的例子,展示了如何使用Python创建一个闪烁的爱心形状:importturtleimporttime#设置画布screen=turtle.......