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

Leetcode 2949. Count Beautiful Substrings II

  • Leetcode 2949. Count Beautiful Substrings II
    • 1. 解题思路
    • 2. 代码实现
  • Leetcode 2949. Count Beautiful Substrings II

1. 解题思路

这一题真的很丢脸,居然没有搞定,是看了大佬们的思路之后才想明白的,就感觉丢脸丢大了……

这道题讲道理挺简单的,而且相似类型的题目其实以前做过挺多的了,想不通但是为啥没有直接想到思路……

这道题的话如果没有平方整除 k k k的限制,只是要求元音和辅音字符相同的子串的数目,其实问题就非常简单,只要记录一下两者的差值,然后在相同项之间取开始和结束点即可,即 C n 2 C_n^2 Cn2种选择方法。

这里复杂也就是复杂在多了一个平方整除 k k k的限制要求,不过事实上这个也不麻烦的,我们在多一个字符串总长度的counter即可,要使得一个数的平方为 k k k的倍数,那么这个数一个是某一个数 p p p的倍数,且 p p p满足 p p p为最小的使得 p 2 ≡ 0 ( m o d k ) p^2 \equiv 0 (mod\ k) p20(mod k)

然后,我们重复上面的思路找一下每一种可能性的首尾节点的可能选取方式即可。

2. 代码实现

给出python代码实现如下:

class Solution:def beautifulSubstrings(self, s: str, k: int) -> int:p = 1for i in range(1, k+1):if i * i % k == 0:p = ibreakcnt = defaultdict(int)cnt[(0, 0)] = 1delta, num = 0, 0for ch in s:if ch in "aeiou":delta += 1num += 1else:delta -= 1cnt[(delta, num % p)] += 1ans = 0for n in cnt.values():ans += n * (n-1) // 2return ans

提交代码评测得到:耗时196ms,占用内存20.7MB。

相关文章:

Leetcode 2949. Count Beautiful Substrings II

Leetcode 2949. Count Beautiful Substrings II 1. 解题思路2. 代码实现 Leetcode 2949. Count Beautiful Substrings II 1. 解题思路 这一题真的很丢脸,居然没有搞定,是看了大佬们的思路之后才想明白的,就感觉丢脸丢大了…… 这道题讲道…...

【Python系列】Python函数

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

自定义TypeHandler 将mysql返回的逗号分隔的String转换到List

sql执行如下&#xff1a; 这里我定义的接受类&#xff1a; 但是这里报了错JSON parse error: Cannot deserialize value of type java.util.ArrayList<java.lang.String>from Object value (token JsonToken.START_OBJECT); nested exception is com.fasterxml.jackson…...

Spring 高级装配详解

一、环境与profile ​ 在3.1版本中&#xff0c;Spring引入了bean profile的功能。要使用profile&#xff0c;首先要将所有不同的bean定义整理到一个或者多个pofile之中&#xff0c;再将应用部署到每个环境时&#xff0c;确保对应的profile处于激活状态。 在Java配置中&#xf…...

mapbox Marker添加自定义html

思路就是先渲染出空div使用getElementsByClassName找到点&#xff0c;之后使用insertAdjacentHTML(‘beforeend’, div) 加自定义内容。 const el document.createElement(div);// 添加一个标记el.className j_icon;const itemIcon new MapboxGl.Marker({element: el,}).set…...

Linux UUCP命令教程:如何在Linux系统中进行文件复制(附实例详解和注意事项)

Linux UUCP命令介绍 UUCP&#xff08;Unix-to-Unix Copy&#xff09;是一套允许远程执行命令和传输文件的程序。UUCP命令是该套件中的一个程序&#xff0c;它为请求文件复制操作提供了用户界面。UUCP套件还包括uux&#xff08;远程命令执行的用户界面&#xff09;、uucico&…...

【android开发-21】android中调用系统摄像头camera拍照和相册的用法详解

1&#xff0c;调用摄像头 在Android中&#xff0c;调用系统摄像头拍照需要使用Intent来启动Camera应用&#xff0c;并在应用中设置相应的权限。下面是一个简单的例子&#xff1a; // 创建一个Intent对象&#xff0c;指定要执行的动作是拍照 Intent intent new Intent(Medi…...

最新版本——Hadoop3.3.6单机版完全部署指南

大家好&#xff0c;我是独孤风&#xff0c;大数据流动的作者。 本文基于最新的 Hadoop 3.3.6 的版本编写&#xff0c;带大家通过单机版充分了解 Apache Hadoop 的使用。本文更强调实践&#xff0c;实践是大数据学习的重要环节&#xff0c;也能在实践中对该技术有更深的理解&…...

理解自我效能感:你的内在动力来源

1. 自我效能感&#xff1a;开启个人潜能的心理动力 想象一下&#xff0c;面对生活的挑战和机遇时&#xff0c;是什么内在力量驱使你去采取行动&#xff0c;或者让你犹豫不决&#xff1f;这种力量&#xff0c;与我们的心理状态紧密相关&#xff0c;其中一个关键因素就是我们的自…...

Java第二十一章

一.网络程序设计基础 1.网络协议 网络协议规定了计算机之间连接的物理、机械(网线与网卡的连接规定)、电气(有效的电平范围)等特征&#xff0c;计算机之间的相互寻址规则&#xff0c;数据发送冲突的解决方式&#xff0c;长数据如何分段传送与接收等内容.就像不同的国家有不同的…...

Redis交互速度慢,CPU占用100%,集群方案,报错等问题

Redis交互速度很慢&#xff0c;达到几十到一百毫秒一次 问题描述&#xff1a; 执行top命令发现redis占用达到100% redis交互速度慢&#xff0c;一次要几十到一百毫秒一次 解决思路 查看redis数据量&#xff0c;比如我这里达到了30万 经过本地测试&#xff0c;redis交互的速…...

wpf 系统在显示器分辨率和缩放设置为非1920*1080和100%时,SelectionChanged事件响应问题分析?

系统在显示器分辨率和缩放设置为1920*1080和100%时&#xff0c;窗口四分格能正常响应SelectionChanged事件&#xff0c;但是当缩放为125%时&#xff0c;或是分辨率大于1920*1080时四分格其中一个格子的下侧和右侧点击不响应&#xff0c;什么原因&#xff1f; 描述的问题可能由以…...

刷题记录--算法--简单

第一题 2582. 递枕头 已解答 简单 相关标签 相关企业 提示 n 个人站成一排&#xff0c;按从 1 到 n 编号。 最初&#xff0c;排在队首的第一个人拿着一个枕头。每秒钟&#xff0c;拿着枕头的人会将枕头传递给队伍中的下一个人。一旦枕头到达队首或队尾&#xff0c;传递…...

条码生成器与Zint使用

文章目录 目的条形码zint支持条形码种类下载编译qt pro配置code保存条形码目的 1: 了解条形码数据理论知识 2: 了解zint第三方库相关, 如何编译引用到项目中 条形码 条形码(Barcode)一维码 和二维码(QR code)都是用于存储信息的图形化表示方式,通常应用于商品标识、库…...

C#winform上下班打卡系统Demo

C# winform上下班打卡系统Demo 系统效果如图所示 7个label控件(lblUsername、lblLoggedInEmployeeId、lab_IP、lblCheckOutTime、lblCheckInTime、lab_starttime、lab_endtime)、3个按钮、1个dataGridView控件、2个groupBox控件 C#代码实现 using System; using System.Dat…...

P1 Qt的认识及环境配置

目录 前言 01 下载Qt Creator windows下载安装包拷贝到Linux Linux直接下载 02 Linux 安装Qt 前言 &#x1f3ac; 个人主页&#xff1a;ChenPi &#x1f43b;推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ &#x1f525; 推荐专栏2: 《Linux C应用编程&#xff08;概念类…...

单元测试Nunit的几种断言

Nunit提供了一些辅助函数用于确定好某个被测试函数是否正常工作。通常把这些函数称为断言 断言是单元测试最基本的组成部分。因此&#xff0c;NUnit程序库以Assert类的静态方法的形式提供了不同形式的多种断言 1. Assert.AreEqual&#xff1a;比较两个值是否相等。用于比较数…...

前端中的响应式布局与各个端适配

什么是响应式布局&#xff1f; 响应式布局指的是同一页面在不同屏幕尺寸下有不同的布局。在移动互联网高度发达的今天&#xff0c;我们在桌面浏览器上开发的网页已经无法满足在移动设备上查看的需求。传统的开发方式是PC端开发一套页面&#xff0c;手机端再开发一套页面。但是…...

2023年5个自动化EDA库推荐

EDA或探索性数据分析是一项耗时的工作&#xff0c;但是由于EDA是不可避免的&#xff0c;所以Python出现了很多自动化库来减少执行分析所需的时间。EDA的主要目标不是制作花哨的图形或创建彩色的图形&#xff0c;而是获得对数据集的理解&#xff0c;并获得对变量之间的分布和相关…...

7-1 查找书籍

给定n本书的名称和定价&#xff0c;本题要求编写程序&#xff0c;查找并输出其中定价最高和最低的书的名称和定价。 输入格式: 输入第一行给出正整数n&#xff08;<10&#xff09;&#xff0c;随后给出n本书的信息。每本书在一行中给出书名&#xff0c;即长度不超过30的字…...

【无线网络技术】——无线广域网(学习笔记)

&#x1f4d6; 前言&#xff1a;无线广域网(WWAN)是指覆盖全国或全球范围内的无线网络&#xff0c;提供更大范围内的无线接入&#xff0c;与无线个域网、无线局域网和无线城域网相比&#xff0c;它更加强调的是快速移动性。典型的无线广域网&#xff1a;蜂窝移动通信系统和卫星…...

【java+vue+微信小程序项目】从零开始搭建——健身房管理平台(2)后端跨域、登录模块、springboot分层架构、IDEA修改快捷键、vue代码风格

项目笔记为项目总结笔记,若有错误欢迎指出哟~ 【项目专栏】 【java+vue+微信小程序项目】从零开始搭建——健身房管理平台(1)spring boot项目搭建、vue项目搭建、微信小程序项目搭建 【java+vue+微信小程序项目】从零开始搭建——健身房管理平台(2)后端跨域、登录模块、sp…...

NGINX相关配置

全局配置 NGINX配置信息 nginx 官方帮助文档&#xff1a;http://nginx.org/en/docs/Nginx的配置文件的组成部分&#xff1a; 主配置文件&#xff1a;/conf/nginx.conf(/nginx/conf/nginx.conf) 子配置文件: include conf.d/*.conf#事件驱动相关的配置 同步 event { worker_…...

如何将idea中导入的文件夹中的项目识别为maven项目

问题描述 大家经常遇到导入某个文件夹的时候&#xff0c;需要将某个子文件夹识别为maven项目 解决方案...

CleanMyMac4.16中文最新版本下载

当很多人还在为电脑运行缓慢、工作问题不能快速得到解决而烦恼的时候&#xff0c;我已经使用过了多款系统清理工具&#xff0c;并找到了最适合我的那一款。我的电脑是超耐用的Mac book&#xff0c;接下来给大家介绍三种在众多苹果电脑清理软件的排名较高的软件。 一、Maintena…...

谷歌正式发布最强 AI 模型 Gemini

2023年12月6日&#xff0c;谷歌公司宣布推出其被认为是规模最大、功能最强大的人工智能模型 Gemini。 Gemini将分为三个不同的套件&#xff1a;Gemini Ultra、Gemini Pro和Gemini Nano。 Gemini Ultra被认为具备最强大的能力&#xff0c;Gemini Pro则可扩展至多任务&#x…...

无人机语音中继电台 U-ATC118

简介 甚高频无线电中继通讯系统使用经过适航认证的机载电台连接数字网络传输模块&#xff0c;通过网络远程控制无缝实现无人机操作员与塔台直接语音通话。无人机操作员可以从地面控制站远程操作机载电台进行频率切换、静噪开关、PTT按钮&#xff0c;电台虚拟面板与真实面板布局…...

两种测量方式的自适应卡尔曼滤波数据融合

文章目录 测试效果代码CMakeLists.txt参考测试效果 代码 #include <iostream> #include <Eigen/Dense> #include...

.Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)

机缘 不知不觉,.NET8都已经面世,而我们一直还停留在.netframework4.5开发阶段,最近准备抽空研究一下.Net6,一是为了提高技术积累,一方面想着通过这次的学习,看有没有可能将老的FX版本替换到.Net6开发上,经过查找官方资料,对.Net6支持的系统版本做一个分享,方便大家后期…...

CopyOnWriteArraySet怎么用

简介 CopyOnWriteArraySet是一个线程安全的无序集合&#xff0c;它基于“写时复制”的思想实现。它继承自AbstractSet&#xff0c;可以将其理解成线程安全的HashSet。 CopyOnWriteArraySet在读取操作比较频繁、写入操作相对较少的情况下可以提高程序的性能和可靠性。它的线程…...