题目链接
题意:给定二进制字符串 s s s,将 s s s 分割成 3 个非空字符串 s 1 , s 2 , s 3 即 ( s 1 + s 2 + s 3 = s ) s1, s2, s3即 (s1 + s2 + s3 = s) s1,s2,s3即(s1+s2+s3=s)。
请你返回分割 s s s 的方案数,满足 s 1 , s 2 和 s 3 s1,s2 和 s3 s1,s2和s3 中字符 '1' 的数目相同。
思路:先统计1的数量 n n n, n % 3 ! = 0 n\%3!=0 n%3!=0可以之间返回0,然后 n / 3 n/3 n/3~ 2 n / 3 2n/3 2n/3之间的间隔都可以作为 s 1 、 s 2 s1、s2 s1、s2的分割线, 2 n / 3 2n/3 2n/3- n n n之间的间隔都可以作为 s 2 、 s 3 s2、s3 s2、s3的分割线,把两个分割线的取值可能相乘即可。具体的代码处理方式我们考虑求1的数量的前缀,计算前缀等于 n / 3 n/3 n/3和 2 n / 3 2n/3 2n/3的元素数量。
最后注意特判全为0的情况,答案为 ( 2 n − 1 ) {2 \choose n-1} (n−12​)
AC代码:

class Solution {public:long long mod=1e9+7;int numWays(string s) {vector<long long> vec(s.size());vec[0]=s[0]-'0';if(s.size()<3) return 0;for(long long i=1;i<s.size();i++){vec[i]=vec[i-1]+(s[i]-'0');}long long n=s.size();if(vec[n-1]%3) return 0;else{if(vec[n-1]==0) return (((n-2)*(n-1))%mod)/2;long long x1=0,x2=0;for(int i=0;i<n;i++){if(vec[i]==vec[n-1]/3) x1++;else if(vec[i]==vec[n-1]/3*2) x2++;x1%=mod;x2%=mod;}return (x1*x2)%mod;}}
};

Leetcode5492. 分割字符串的方案数【第 34 场双周赛】【字符串处理\找规律隔板法】相关推荐

  1. LeetCode 第 34 场双周赛(385/2842,前13.5%)

    文章目录 1. 比赛结果 2. 题目 1. LeetCode 5491. 矩阵对角线元素的和 easy 2. LeetCode 5492. 分割字符串的方案数 medium 3. LeetCode 5 ...

  2. 2466. 统计构造好字符串的方案数(动态规划 (跳楼梯换皮))

    2466. 统计构造好字符串的方案数 AC Code impl Solution {pub fn count_good_strings(low: i32, high: i32, zero: i32, ...

  3. ios 怎么判断字符串的字节数_如何用IOS判断字符串是不是纯数字

    我们在开发项目的时候经常会需要我们只输入一段纯数字,当我们在输入这段数字后就需要对字符串进行判断,看看是不是符合纯数字,那么你知道如何用IOS判断字符串是不是纯数字吗? 下面介绍几种判断字符串是否为纯 ...

  4. LeetCode第 3 场双周赛(2019.6.29)第一题:小于 K 的两数之和

    5021. 小于 K 的两数之和 给你一个整数数组 A 和一个整数 K,请在该数组中找出两个元素,使它们的和小于 K 但尽可能地接近 K,返回这两个元素的和. 如不存在这样的两个元素,请返回 -1. ...

  5. C练题笔记之:Leetcode-第 85 场双周赛---6157. 二进制字符串重新安排顺序需要的时间

    emm...第一次参加比赛..着实看到了差距之大 题目: 给你一个二进制字符串 s .在一秒之中,所有 子字符串 "01" 同时 被替换成 "10" .这个过程 ...

  6. 第86场双周赛 NO.3 被列覆盖的最多行数

    题目描述: 给你一个下标从 0 开始的 m x n 二进制矩阵 mat 和一个整数 cols ,表示你需要选出的列数. 如果一行中,所有的 1 都被你选中的列所覆盖,那么我们称这一行 被覆盖 了. 请 ...

  7. leetcode10场双周赛-验证回文字符串 III (动态规划)

    给出一个字符串 s 和一个整数 k,请你帮忙判断这个字符串是不是一个「K 回文」. 所谓「K 回文」:如果可以通过从字符串中删去最多 k 个字符将其转换为回文,那么这个字符串就是一个「K 回文」. 示 ...

  8. Leetcode5485. 找出最长的超赞子字符串【第 32 场双周赛】

    题目链接 题意:给你一个字符串 SSS.请返回 SSS 中最长的 超赞子字符串 的长度. 「超赞子字符串」需满足满足下述两个条件: 该字符串是 SSS 的一个非空子字符串 进行任意次数的字符交换重新排 ...

  9. Leetcode5469. K 次操作转变字符串【第 32 场双周赛】

    题目链接 题意:给定一小写字母字符串,第i次操作可把任一位字符切换i次,切换操作即把字符用字母表中下一个字符替换之,假设字母表成环,即 z z z的下一位是 a a a,当然也可以选择不切换,每一位至 ...

最新文章

  1. 通过python实现超市购物系统(通过列表简单实现版)
  2. web login do.php,dologin.php
  3. WPF模板(二)应用
  4. 嵌入式开发试题1-100
  5. centos国内yum源
  6. 使用c# .net core开发国标gb28181 sip +流媒体服务完成视频监控实例教程 亲身完美体验过程...
  7. 知识技能归档--CA-PKI体系-20210324
  8. vue-router linkActiveClass问题
  9. Python Imaging Library: ImageColor Module(图像颜色模块)
  10. 白盒测试之基本路径测试法
  11. RunTime之类与对象
  12. 做Java软件开发有前途吗?
  13. 【软测面试】找工作前的准备|面试题
  14. 古风宣纸背景教学课件讲座PPT模板
  15. css格式规范stylelint在vscode使用教程(ctrl+s自动智能修复)
  16. EOS价格震荡起伏,EOS生态数据不断上行
  17. WebAssembly:2023年的5个预测
  18. 绝了,项目内部源码资源被爆出!网友:请收下我的膝盖!
  19. 常用计算机控制芯片有哪些,电脑基本芯片的认识的常用知识介绍
  20. 小程序如何本地去水印,基于很多小白写的教程

热门文章

  1. 使用JavaScript输出偶数
  2. CSS动态能量加载水球
  3. GIScloud,一个基于网络的地理信息系统云计算方案 (专题一)
  4. 2021年土建方向-岗位技能(质量员)考试报名及土建方向-岗位技能(质量员)免费试题
  5. 2021年土建方向-岗位技能(质量员)多少分及格及土建方向-岗位技能(质量员)模拟考试题库
  6. shell截取文件行数_shell查找某字符串在某文件中出现行数的方法
  7. MC9S12XEP100引脚的复用方式
  8. NBT:可重复交互式的微生物组分析平台QIIME 2(2021.4发布)
  9. excel怎么更改坐标轴刻度_excel表格改坐标轴数据-如何改变Excel表格坐标轴刻度的次序...
  10. c++/c 招聘JD