当前位置: 首页 > news >正文

【Java|golang】1234. 替换子串得到平衡字符串---双指针

有一个只含有 ‘Q’, ‘W’, ‘E’, ‘R’ 四种字符,且长度为 n 的字符串。

假如在该字符串中,这四个字符都恰好出现 n/4 次,那么它就是一个「平衡字符串」。

给你一个这样的字符串 s,请通过「替换一个子串」的方式,使原字符串 s 变成一个「平衡字符串」。

你可以用和「待替换子串」长度相同的 任何 其他字符串来完成替换。

请返回待替换子串的最小可能长度。

如果原字符串自身就是一个平衡字符串,则返回 0。

示例 1:

输入:s = “QWER”
输出:0
解释:s 已经是平衡的了。
示例 2:

输入:s = “QQWE”
输出:1
解释:我们需要把一个 ‘Q’ 替换成 ‘R’,这样得到的 “RQWE” (或 “QRWE”) 是平衡的。
示例 3:

输入:s = “QQQW”
输出:2
解释:我们可以把前面的 “QQ” 替换成 “ER”。
示例 4:

输入:s = “QQQQ”
输出:3
解释:我们可以替换后 3 个 ‘Q’,使 s = “QWER”。

提示:

1 <= s.length <= 10^5
s.length 是 4 的倍数
s 中只含有 ‘Q’, ‘W’, ‘E’, ‘R’ 四种字符

双指针滑动窗口的应用:
1.本题只需要窗口外每种字符的数目小于等于平均值即可
2.滑动窗口里进来一个元素 就把count里的这个值减1
3.如果四个元素都符合要求 就计算最小值
4.移动左指针 看能不能缩小范围

 public int balancedString(String s) {int[] ints = new int[26];for (char c : s.toCharArray()) {ints[c-'A']++;}int len=s.length();int res=len;int ava=len/4;int left=0,right=0;while (right<len){ints[s.charAt(right)-'A']--;while (left<len&&ints[4]<=ava&&ints[16]<=ava&&ints[17]<=ava&&ints[22]<=ava){res=Math.min(res,right-left+1);ints[s.charAt(left)-'A']++;left++;}right++;}return res;}

在这里插入图片描述

func balancedString(s string) int {ints:=[26]int{}for _, v := range s {ints[v-'A']++}length:= len(s)res,ava,left,right:=length,length/4,0,0for right<length{ints[s[right]-'A']--for left<length&&ints[4]<=ava&& ints[16]<=ava&&ints[17]<=ava&&ints[22]<=ava{temp:=right-left+1if temp<res {res=temp}ints[s[left]-'A']++left++}right++}return res
}

在这里插入图片描述

相关文章:

【Java|golang】1234. 替换子串得到平衡字符串---双指针

有一个只含有 ‘Q’, ‘W’, ‘E’, ‘R’ 四种字符&#xff0c;且长度为 n 的字符串。 假如在该字符串中&#xff0c;这四个字符都恰好出现 n/4 次&#xff0c;那么它就是一个「平衡字符串」。 给你一个这样的字符串 s&#xff0c;请通过「替换一个子串」的方式&#xff0c;…...

自监督表征学习方法——BYOL(Bootstrap Your Own Latent)

自监督表征学习方法——BYOL(Bootstrap Your Own Latent) 参考文献&#xff1a;《Bootstrap Your Own Latent A New Approach to Self-Supervised Learning》 1.前言背景 学习良好的图像表示是计算机视觉中的一个关键挑战&#xff0c;因为它允许对下游任务进行有效的训练。许…...

均衡负载集群(LBC)-1

均衡负载集群&#xff08;LBC&#xff09; 客户–>通过Internet—>负载调度器—>n台真实服务器 负载调度器&#xff1a; 软件&#xff1a;LVS&#xff1b;Nginx&#xff1b;Haproxy硬件&#xff1a;F5&#xff1b; LVS架构&#xff1a; 使用到C/S&#xff08;B/S…...

WebSocket

关于WebSocket&#xff1a; WebSocket 协议在2008年诞生&#xff0c;2011年成为国际标准。现在所有浏览器都已经支持了。 WebSocket 的最大特点就是&#xff0c;服务器可以主动向客户端推送信息&#xff0c;客户端也可以主动向服务器发送信息&#xff0c;是真正的双向平等对话…...

GA-PEG-GA,Glutaric Acid-PEG-Glutaric Acid,戊二酸-聚乙二醇-戊二酸供应

英文名称&#xff1a;Glutaric Acid-PEG-Glutaric Acid&#xff0c;GA-PEG-GA 中文名称&#xff1a;戊二酸-聚乙二醇-戊二酸 GA-PEG-GA是一种线性双功能PEG羧酸试剂。PEG和羧基COOH之间存在C4酯键。PEG羧酸可用于与氨基反应&#xff0c;与NHS和DCC、EDC等肽偶联试剂反应。 P…...

使用sqlmap + burpsuite sql工具注入拿flag

使用sqlmap burpsuite sql工具注入拿flag 记录一下自己重新开始学习web安全之路③。 目标网站&#xff1a;http://mashang.eicp.vip:1651/7WOY59OBj74nTwKzs3aftsh1MDELK2cG/ 首先判断网站是否存在SQL注入漏洞 1.找交互点 发现只有url这一个交互点&#xff0c;搜索框和登录…...

替代AG9300|替代NCS8823|CS5260 Type-C转VGA视频转换方案

替代AG9300|替代NCS8823|CS5260 Type-C转VGA视频转换方案 CS5260是一款是一款实现USB TYPE-C到VGA视频转换的单片机解决方案转换器。CS5260支持USB Type-C显示端口交替模式&#xff0c;CS5260可以将视频和音频流从USB Type-C接口传输到VGA端口。在CS5260芯片中&#xff0c;显示…...

乐鑫特权隔离机制的 OTA 固件升级

固件空中升级 (OTA, Over-The-Air) 是任何联网设备的重要功能之一&#xff0c;支持开发人员通过远程更新固件&#xff0c;以发布新功能或修复错误。乐鑫特权隔离框架中包含两类应用程序&#xff1a;受保护的应用程序 (protected_app) 和用户应用程序 (user_app) &#xff0c;这…...

C++数据结构 —— 二叉搜索树

目录 1.二叉搜索树的基本概念 1.1二叉搜索树的基本特征 2.二叉搜索树的实现 2.1数据的插入(迭代实现) 2.2数据的搜索(迭代实现) 2.3中序遍历(递归实现) 2.4数据的删除(迭代实现) 2.5数据的搜索(递归实现) 2.6数据的插入(递归实现) 2.7数据的删除(递归实现) 2.8类的完…...

Maven面试题及答案

1、Maven有哪些优点和缺点 优点&#xff1a; 1、简化项目依赖管理 2、方便与持续集成工具(Jenkins)整合 3、有助于多模块项目开发&#xff0c;比如一个模块开发好后发布到仓库&#xff0c;依赖该模块时可以直接从远程仓库更新&#xff0c;不用自己手动去编译 4、有很多插件&am…...

WebRTC系列-Qos系列之接收放RTX处理

文章目录 1. RTX详解1.1 RTX包头解析1.2 RTX包中的OSN2. RTX在WebRTC中处理2.1 组包2.2 解包2.3 发送及接收处理流程2.3.1 发送流程2.3.2 rtx标记的设置流程2.3.3 解析流程2.3.4 RTX解包在上一篇 WebRTC系列-Qos系列之接收NACK文章中分析了接收到nack后解析的主要流程。在WebR…...

国内能否炒伦敦金,2023国际十大正规伦敦金交易平台排名

在目前的投资市场环境中&#xff0c;现货黄金是一种屡见不鲜的投资选择&#xff0c;它依靠国际化的投资环境&#xff0c;成为了世界范围内投资者的重要选择对象。进行现货黄金投资&#xff0c;人们除了要认识市场发展基本现状之外&#xff0c;更要做好基本面和技术面分析工作&a…...

react路由 - react-router-dom

react路由 现代的前端应用大多都是 SPA&#xff08;单页应用程序&#xff09;&#xff0c;也就是只有一个 HTML 页面的应用程序。因为它的用户体验更好、对服务器的压力更小&#xff0c;所以更受欢迎。为了有效的使用单个页面来管理原来多页面的功能&#xff0c;前端路由应运而…...

01-RTOS

对于裸机而言&#xff0c;对于RTOS而言即&#xff1a;对于裸机&#xff0c;打游戏意味着不能回消息 回消息意味着不能打游戏对于RTOS 打游戏和裸机的切换只需要一个时间片节拍 1ms 从宏观来看 就是同时进行的两件事&#xff08;但要在这两件事情的优先级一样的情况下&#xff0…...

信息安全管理

信息安全管理信息安全管理信息安全风险管理信息安全管理体系应急响应与灾难恢复应急响应概况信息系统灾难修复灾难恢复相关技术信息安全管理 管理概念&#xff1a;组织、协调、控制的活动&#xff0c;核心过程的管理控制 管理对象和组成&#xff1a;包括人员在内相关资产&…...

深度学习tips

1、datasets_make函数中最后全部转化为numpy形式 datanp.array(data)否则会出现问题&#xff0c;比如数据是103216&#xff0c;经过trainloader生成tensor后&#xff08;batch_size为30&#xff09;&#xff0c;发现生成的数据为&#xff1a; data.shape #(10,) data[0].shape…...

2023-2-13 刷题情况

替换子串得到平衡字符串 题目描述 有一个只含有 ‘Q’, ‘W’, ‘E’, ‘R’ 四种字符&#xff0c;且长度为 n 的字符串。 假如在该字符串中&#xff0c;这四个字符都恰好出现 n/4 次&#xff0c;那么它就是一个「平衡字符串」。 给你一个这样的字符串 s&#xff0c;请通过…...

[HSCSEC 2023] rev,pwn,crypto,Ancient-MISC部分

比赛后有讲解&#xff0c;没赶上&#xff0c;前20比赛完1小时提交WP&#xff0c;谁会大半夜的起来写WP。总的感觉pwn,crypto过于简单&#xff0c;rev有2个难的不会&#xff0c;其它不是我的方向都感觉过于难&#xff0c;一个都没作。revDECOMPILEONEOONE入门题&#xff0c;一个…...

SpringBoot 接入 Spark

本文主要介绍 SpringBoot 与 Spark 如何对接&#xff0c;具体使用可以参考文章 SpringBoot 使用 Spark pom 文件添加 maven 依赖 spark-core&#xff1a;spark 的核心库&#xff0c;如&#xff1a;SparkConfspark-sql&#xff1a;spark 的 sql 库&#xff0c;如&#xff1a;s…...

在线支付系列【23】支付宝开放平台产品介绍

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 文章目录前言支付产品App 支付手机网站支付电脑网站支付新当面资金授权当面付营销产品营销活动送红包会员产品App 支付宝登录人脸认证信用产品芝麻 GO芝麻先享芝麻免押芝麻工作证安全产品交易安全防护其…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词

Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵&#xff0c;其中每行&#xff0c;每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid&#xff0c;其中有多少个 3 3 的 “幻方” 子矩阵&am…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker &#xff1b;并安装。 基础操作不再赘述。 打开 macOS 终端&#xff0c;开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...