题目描述
均衡串定义:字符串中只包含两种字符,且这两种字符的个数相同。
给定一个均衡字符串,请给出可分割成新的均衡子串的最大个数。
约定:字符串中只包含大写的 X 和 Y 两种字符。
输入描述
输入一个均衡串

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

输出描述
输出可分割成新的均衡子串的最大个数。
备注
分割后的子串,是原字符串的连续子串。
用例

输入:	XXYYXY
输出:	2
说明:	XXYYXY可以分割成2个均衡子串,分别为XXYY、XY

Java 解法:

import java.util.Scanner;

public class BalancedStringSplitter {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String s = scanner.nextLine();
        int result = balancedStringSplit(s);
        System.out.println(result);
    }

    public static int balancedStringSplit(String s) {
        int count = 0;
        int balance = 0;

        for (char c : s.toCharArray()) {
            if (c == 'X') {
                balance++;
            } else if (c == 'Y') {
                balance--;
            }

            if (balance == 0) {
                count++;
            }
        }

        return count;
    }
}

Python 解法:

def balancedStringSplit(s):
    count = 0
    balance = 0

    for c in s:
        if c == 'X':
            balance += 1
        elif c == 'Y':
            balance -= 1

        if balance == 0:
            count += 1

    return count

if __name__ == "__main__":
    s = input("请输入一个均衡字符串: ")
    result = balancedStringSplit(s)
    print(result)

C++ 解法:

#include <iostream>
#include <string>

int balancedStringSplit(const std::string& s) {
    int count = 0;
    int balance = 0;

    for (char c : s) {
        if (c == 'X') {
            balance++;
        } else if (c == 'Y') {
            balance--;
        }

        if (balance == 0) {
            count++;
        }
    }

    return count;
}

int main() {
    std::string s;
    std::cout << "请输入一个均衡字符串: ";
    std::cin >> s;

    int result = balancedStringSplit(s);
    std::cout << result << std::endl;

    return 0;
}

+++==========================================================+++
以上内容仅为个人学习记录使用。
如有转载,请附有原文出处链接。

牛客网原题链接:https://www.nowcoder.com/discuss/633634580129447936?sourceSSR=search

posted on 2024-06-28 13:48  Hy旧人伤  阅读(139)  评论(0)    收藏  举报