当前位置: 首页 > news >正文

(nice!!!) (LeetCode 每日一题) 3333. 找到初始输入字符串 II (贪心+动态规划dp+前缀和)

题目:3333. 找到初始输入字符串 II

在这里插入图片描述
在这里插入图片描述
思路:参考大神的思路

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

C++版本:

class Solution {
public:const int mod=1e9+7;int possibleStringCount(string word, int k) {int n=word.size();if(n<k) return 0;vector<int> v;int ct=0;long long sum=1;for(int i=0;i<n;i++){ct++;if(i==n-1 || word[i]!=word[i+1]){if(ct>1){v.push_back(ct-1);sum=sum*ct%mod;}k--;ct=0;}}if(k<=0) return (int)sum;int m=v.size();vector<vector<int>> f(m+1,vector<int>(k+1));vector<int> s(k+1);ranges::fill(f[0],1);for(int i=0;i<m;i++){for(int j=0;j<k;j++){s[j+1]=(s[j]+f[i][j])%mod;}for(int j=0;j<k;j++){f[i+1][j]=(s[j+1]-s[max(j-v[i],0)])%mod;}}return (sum-f[m][k-1]+mod)%mod;}
};

JAVA版本:

class Solution {public int possibleStringCount(String word, int k) {final int mod=1000000007;int n=word.length();if(n<k) return 0;List<Integer> v=new ArrayList<>();long sum=1;int ct=0;for(int i=0;i<n;i++){ct++;if(i==n-1 || word.charAt(i)!=word.charAt(i+1)){if(ct>1){v.add(ct-1);sum=(sum*ct)%mod;}k--;ct=0;}}if(k<=0) return (int)sum;int m=v.size();int[][] f=new int[m+1][k];int[] s=new int[k+1];Arrays.fill(f[0],1);for(int i=0;i<m;i++){for(int j=0;j<k;j++){s[j+1]=(s[j]+f[i][j])%mod;}for(int j=0;j<k;j++){f[i+1][j]=(s[j+1]-s[Math.max(0,j-v.get(i))])%mod;}}return (int)((sum-f[m][k-1]+mod)%mod);}
}

Go版本:

func possibleStringCount(word string, k int) int {const mod int =1000000007n:=len(word)if n<k {return 0}v:=make([]int,0)ct:=0sum:=1for i:=0;i<n;i++ {ct++if i==n-1 || word[i]!=word[i+1] {if ct>1 {v=append(v,ct-1)sum=(sum*ct)%mod}k--ct=0}}if k<=0 {return sum}m:=len(v)f:=make([][]int, m+1)for i:=range f {f[i]=make([]int,k)}for i:=range f[0] {f[0][i]=1}s:=make([]int,k+1)for i:=0;i<m;i++ {for j:=0;j<k;j++ {s[j+1]=(s[j]+f[i][j])%mod}for j:=0;j<k;j++ {f[i+1][j]=(s[j+1]-s[max(0,j-v[i])])%mod}}return (sum-f[m][k-1]+mod)%mod
}
http://www.dtcms.com/a/264614.html

相关文章:

  • 如何解决wordpress批量删除媒体库中的图片很慢甚至卡死问题
  • 音视频会议服务搭建(设计方案-两种集成方案对比)-03
  • U+平台配置免密登录、安装Hadoop配置集群、Spark配置
  • OpenLayers 入门指南【一】:WebGIS基础与OpenLayers概述
  • Chart.js 安装使用教程
  • AI自动化神器-DroidRun使用体验
  • OpenCASCADE学习|点云可视化深度优化指南
  • 【数字后端】- tcbn28hpcplusbwp30p140,标准单元库命名含义
  • 记一次事务中更新与查询数据不一致的问题分析
  • HTTP 协议深入理解
  • Git 分支与远程仓库基础教学总结
  • sudo本地提权漏洞(CVE-2025-32462)
  • S7-1200 PN与G120变频器控制起停及调速PROFINET实现详解
  • 微信小程序能不能获取物联网的上的设备数据
  • 在 proteus8或者proteus 9 中查看 micropython 的 print 输出
  • Redis搭建集群模式
  • 【WEB】Polar靶场 笔记
  • C++主流编辑器特点比较
  • 【HDMI CEC Menu Tunneling (菜单穿越) 功能详解
  • Stereolabs ZED系列与ZED X立体相机系列对比:如何根据项目需求选择?
  • AI大模型如何重塑软件开发流程?从自动化革命到人机共生范式
  • 小架构step系列01:小架构初衷
  • SQLMesh中的SQL模型:从基础定义到高级应用
  • 【网工|知识升华版|实验】1 登录华为设备并配置
  • 【Maven】Maven深度避坑指南:依赖冲突全维度解决方案与工业级实战(超万字解析)
  • 移动conda虚拟环境的安装目录
  • 超低功耗语音芯片有哪些?
  • 构建下一代云原生大模型多租户平台:架构设计与关键挑战
  • Django全栈开发:架构解析与性能优化实战
  • AWS CloudFormation部署双可用区VPC网络架构 - 完整指南