有没有外包活的网站,wordpress cms主题,昆山网站建设秦皇岛,wordpress 大气主题Leetcode 2949. Count Beautiful Substrings II 1. 解题思路2. 代码实现 Leetcode 2949. Count Beautiful Substrings II
1. 解题思路
这一题真的很丢脸#xff0c;居然没有搞定#xff0c;是看了大佬们的思路之后才想明白的#xff0c;就感觉丢脸丢大了……
这道题讲道…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) p2≡0(mod k)。
然后我们重复上面的思路找一下每一种可能性的首尾节点的可能选取方式即可。
2. 代码实现
给出python代码实现如下
class Solution:def beautifulSubstrings(self, s: str, k: int) - int:p 1for i in range(1, k1):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。