2025B-分割均衡字符串-100分

刷题笔记合集🔗

问题描述

均衡串定义:字符串中只包含两种字符,且这两种字符的个数相同。

给定一个均衡字符串,请给出可分割成新的均衡子串的最大个数。

约定:字符串中只包含大写的X和Y两种字符。

输入格式

输入一个均衡串。

  • 字符串的长度:[2,10000]
  • 给定的字符串均为均衡字符串

输出格式

输出可分割成新的均衡子串的最大个数。

备注

分割后的子串,是原字符串的连续子串。

样例1

输入:

XXYYXY

输出:

2

说明:

  • XXYYXY可分割为2个均衡子串
  • 分别为:XXYY、XY

题解

本题可以使用贪心法解决:

  1. 从左到右扫描字符串
  2. 统计X和Y的数量
  3. 当X和Y数量相等时,找到一个均衡子串
  4. 继续扫描剩余部分

时间复杂度:O(n),其中n为字符串长度。

参考代码

# 读取输入
s = input()

def getResult():
    x_count = 0  # X的数量
    y_count = 0  # Y的数量
    ans = 0      # 均衡子串数量
    
    for c in s:
        if c == 'X':
            x_count += 1
        else:
            y_count += 1
            
        if x_count == y_count:
            ans += 1
            
    return ans

print(getResult())
import java.util.Scanner;

public class Main {
    public static void main(String[] arg

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

算法刷题笔记 文章被收录于专栏

本专栏收集并整理了一些刷题笔记

全部评论

相关推荐

找工作勤劳小蜜蜂:自我描述部分太差,完全看不出想从事什么行业什么岗位,也看不出想在哪个地区发展,这样 会让HR很犹豫,从而把你简历否决掉。现在企业都很注重员工稳定性和专注性,特别对于热爱本行业的员工。 你实习的工作又太传统的it开发(老旧),这部分公司已经趋于被淘汰,新兴的互联网服务业,比如物流,电商,新传媒,游戏开发和传统的It开发有天然区别。不是说传统It开发不行,而是就业岗位太少,基本趋于饱和,很多老骨头还能坚持,不需要新血液。 工作区域(比如长三角,珠三角,成渝)等也是HR考虑的因素之一,也是要你有个坚定的决心。否则去几天,人跑了,HR会被用人单位骂死。
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务