zoukankan      html  css  js  c++  java
  • 【leetcode】1513. Number of Substrings With Only 1s

    题目如下:

    Given a binary string s (a string consisting only of '0' and '1's).

    Return the number of substrings with all characters 1's.

    Since the answer may be too large, return it modulo 10^9 + 7.

    Example 1:

    Input: s = "0110111"
    Output: 9
    Explanation: There are 9 substring in total with only 1's characters.
    "1" -> 5 times.
    "11" -> 3 times.
    "111" -> 1 time.

    Example 2:

    Input: s = "101"
    Output: 2
    Explanation: Substring "1" is shown 2 times in s.
    

    Example 3:

    Input: s = "111111"
    Output: 21
    Explanation: Each substring contains only 1's characters.
    

    Example 4:

    Input: s = "000"
    Output: 0 

    Constraints:

    • s[i] == '0' or s[i] == '1'
    • 1 <= s.length <= 10^5

    解题思路:对于所有字符都为1并且长度为n的字符串,满足题目条件的子串的个数为n*(n+1)/2。

    代码如下:

    class Solution(object):
        def numSub(self, s):
            """
            :type s: str
            :rtype: int
            """
            s += '# '
            count_1 = 0
            res = 0
            for i in s:
                if i == '1':
                    count_1 += 1
                else:
                    res += ((count_1)*(count_1+1)/2)
                    count_1 = 0
            return res % (10**9 + 7)
  • 相关阅读:
    读取csv文件时编码错误
    ubuntu keras
    ubuntu19.1 tensorflow
    随机数random
    获取文件夹下所有文件名
    np.random.send()
    tensorflow---识别图像特征(吴恩达课程)
    Springboot项目热部署-Devtools
    Hadoop综合大作业
    分布式文件系统HDFS 练习
  • 原文地址:https://www.cnblogs.com/seyjs/p/13656376.html
Copyright © 2011-2022 走看看