• 【leetcode】1422. Maximum Score After Splitting a String


    题目如下:

    Given a string s of zeros and ones, return the maximum score after splitting the string into two non-empty substrings (i.e. left substring and right substring).

    The score after splitting a string is the number of zeros in the left substring plus the number of ones in the right substring.

    Example 1:

    Input: s = "011101"
    Output: 5 
    Explanation: 
    All possible ways of splitting s into two non-empty substrings are:
    left = "0" and right = "11101", score = 1 + 4 = 5 
    left = "01" and right = "1101", score = 1 + 3 = 4 
    left = "011" and right = "101", score = 1 + 2 = 3 
    left = "0111" and right = "01", score = 1 + 1 = 2 
    left = "01110" and right = "1", score = 2 + 1 = 3
    

    Example 2:

    Input: s = "00111"
    Output: 5
    Explanation: When left = "00" and right = "111", we get the maximum score = 2 + 3 = 5
    

    Example 3:

    Input: s = "1111"
    Output: 3

    Constraints:

    • 2 <= s.length <= 500
    • The string s consists of characters '0' and '1' only.

    解题思路:很简单的题目。

    代码如下:

    class Solution(object):
        def maxScore(self, s):
            """
            :type s: str
            :rtype: int
            """
            count_1 = s.count('1')
            res = 0
            sub_count_1 = 0
            sub_count_0 = 0
            for i in s[:-1]:
                if i == '0':
                    sub_count_0 += 1
                else:
                    sub_count_1 += 1
    
                res = max(res,sub_count_0 + (count_1 - sub_count_1))
    
            return res
  • 相关阅读:
    1017 A除以B (20分)**
    剑指 Offer 11. 旋转数组的最小数字(简单)
    剑指 Offer 04. 二维数组中的查找(中等)
    剑指 Offer 53
    剑指 Offer 53
    剑指 Offer 03. 数组中重复的数字(简单)
    剑指 Offer 58
    剑指 Offer 05. 替换空格(简单)
    执行npm install命令出错问题
    剑指 Offer 35. 复杂链表的复制(中等)
  • 原文地址:https://www.cnblogs.com/seyjs/p/13026482.html
Copyright © 2020-2023  润新知