(贪心) 1221. 分割平衡字符串 ——【Leetcode每日一题】

❓ 1221. 分割平衡字符串

难度:简单

平衡字符串 中,'L''R' 字符的数量是相同的。

给你一个平衡字符串 s,请你将它分割成尽可能多的子字符串,并满足:

  • 每个子字符串都是平衡字符串。

返回可以通过分割得到的平衡字符串的 最大数量

示例 1:

输入:s = “RLRRLLRLRL”
输出:4
解释:s 可以分割为 “RL”、“RRLL”、“RL”、“RL” ,每个子字符串中都包含相同数量的 ‘L’ 和 ‘R’ 。

示例 2:

输入:s = “RLRRRLLRLL”
输出:2
解释:s 可以分割为 “RL”、“RRRLLRLL”,每个子字符串中都包含相同数量的 ‘L’ 和 ‘R’ 。
注意,s 无法分割为 “RL”、“RR”、“RL”、“LR”、“LL” 因为第 2 个和第 5 个子字符串不是平衡字符串。

示例 3:

输入:s = “LLLLRRRR”
输出:1
解释:s 只能保持原样 “LLLLRRRR” 。

提示

  • 2 <= s.length <= 1000
  • s[i] = 'L''R'
  • s 是一个 平衡 字符串

💡思路:贪心

任意平衡字符串内的 RL 数量相等:

  • 定义 count 记录 R 的数量,当前字符是 R 就加1,否则减1;
  • count = 0 时,说明当前的 RL 数量相等,数量ans++

🍁代码:(Java、C++)

Java

class Solution {public int balancedStringSplit(String s) {int count = 0, ans = 0;for(int i = 0; i < s.length(); i++){if(s.charAt(i) == 'R') count++;else count--;if(count == 0) ans++;}return ans;}
}

C++

class Solution {
public:int balancedStringSplit(string s) {int count = 0, ans = 0;for(char c : s){if(c == 'R') count++;else count--;if(count == 0) ans++;}return ans;}
};

🚀 运行结果:

在这里插入图片描述

🕔 复杂度分析:

  • 时间复杂度 O ( n ) O(n) O(n),其中 n 为字符串 s 的长度,我们仅需遍历 s 一次。
  • 空间复杂度 O ( 1 ) O(1) O(1),只需要常数的空间存放若干变量。

题目来源:力扣。

放弃一件事很容易,每天能坚持一件事一定很酷,一起每日一题吧!
关注我LeetCode主页 / CSDN—力扣专栏,每日更新!

注: 如有不足,欢迎指正!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/332.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【杨宗宝】Cocos Creator 3.x : 你们要的Label3D来了(升级版)

前沿 宗宝我又回来了&#xff0c;本次给大家带来的分享是基于之前Label3d的升级版&#xff1b;在上次发布了Lable3d的功能后&#xff0c;大家在使用的过程中多多少少的会发现各种问题&#xff1a;微信小游戏真机不显示&#xff0c;字体如何实现描边&#xff0c;引擎版本升级后…

本地部署开源大模型的完整教程:LangChain + Streamlit+ Llama

在过去的几个月里&#xff0c;大型语言模型(llm)获得了极大的关注&#xff0c;这些模型创造了令人兴奋的前景&#xff0c;特别是对于从事聊天机器人、个人助理和内容创作的开发人员。 大型语言模型(llm)是指能够生成与人类语言非常相似的文本并以自然方式理解提示的机器学习模型…

【Java】JVM学习(四)

对象的分配 JVM中对象的创建过程 对象的内存分配 虚拟机遇到一条new指令时&#xff0c;首先检查是否被类加载器加载&#xff0c;如果没有&#xff0c;那必须先执行相应的类加载过程。 类加载就是把class加载到JVM的运行时数据区的过程。 1&#xff09;检查加载 首先检查这…

低功耗蓝牙OM6621EM 兼容Nordic 51系列2.4G私有协议

OM6621EM是一个功率优化的系统(SOC).解决蓝牙低功耗和专有的2.4 ghz应用。它集成了一个高具有蓝牙基带和丰富外设的低功耗射频收发器I0扩展。OM6621EM还集成了电源管理单元(PMU)来提供高效的电源管理。它的目标是2.4GHz低功耗蓝牙系统&#xff0c;专有的2.4 ghz系统&#xff0c…

LLM大模型应用开发的本地环境搭建

尽管 ChatGPT 仍然很受欢迎&#xff0c;但泄露的 Google 内部文件表明开源社区正在迎头赶上并取得重大突破。 我们现在能够在消费级 GPU 上运行大型 LLM 模型。 因此&#xff0c;如果你是一名开发人员&#xff0c;想要在本地环境中尝试这些 LLM 并用它构建一些应用程序&#x…

与chagpt对话记录

每日chagpt对话记录 关注我一下 vscode 浏览器版本 c 函数 无法跳转 C/C IntelliSense, debugging, and code browsing. C/C IntelliSense、调试和代码浏览是指在使用VS Code进行C/C开发时的一些核心功能。下面是对这些功能的简要说明&#xff1a; IntelliSense&#xff08;智能…

android的PopupWindow透明弹窗

1.要实现这种效果 2.可以使用这种方式 View v LayoutInflater.from(mContext).inflate(R.layout.ceshi_01, null);PopupWindow popupWindow new PopupWindow(v, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT, true);popupWindow.showAsDropDo…

深入理解深度学习——GPT(Generative Pre-Trained Transformer):GPT-2与Zero-shot Learning

分类目录&#xff1a;《深入理解深度学习》总目录 相关文章&#xff1a; GPT&#xff08;Generative Pre-Trained Transformer&#xff09;&#xff1a;基础知识 GPT&#xff08;Generative Pre-Trained Transformer&#xff09;&#xff1a;在不同任务中使用GPT GPT&#x…

Unity 之 使用后处理的方式实现暗角效果

Unity 之 后处理URP工程实现边角压暗效果 一&#xff0c;URP工程配置二&#xff0c;代码调用三&#xff0c;实现原理 一&#xff0c;URP工程配置 在Hierarchy界面&#xff0c;创建空物体 GameObject&#xff0c;右键选择Volume菜单下的Global Volume。 创建后的结果&#xff1…

Cannot find declaration to go to 本地环境可以跳转至该页面,但是测试环境跳转不了,记录一下

错误示例: 且前台界面点击该页面&#xff0c;无反应 正确示例: 问题所在&#xff1a; 错误示例中用了 ,虽然本地环境可以运行&#xff0c;但是测试环境识别不了。应该用’引起来

Cortex-M内核知识点总结

总览 Cortex内核 基础 寄存器组 程序在经过编译后&#xff0c;生成可执行二进制文件&#xff0c;如上图&#xff0c;是截取某个函数在flash中存储的内容 (反汇编文件)可以看到以下信息&#xff1a; 指令的存储地址 &#xff0c;指令的二进制内容 &#xff0c; 指令代表的汇编类…

centos版本的EDA虚拟机搭建3

文章目录 0、参考博客1、配置虚拟机与主机共享文件夹。2、安装unrar和rar3、EDA软件正式安装4、gtkwave与iverilog安装5、安装vscode6、安装wine软件7、notepad安装 0、参考博客 1、CentOS 7 下 rar unrar的安装 1、配置虚拟机与主机共享文件夹。 **前提&#xff0c;虚拟机关…