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

LeetCode 每日一题 2025/3/10-2025/3/16

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步


目录

      • 3/10 2269. 找到一个数字的 K 美丽值
      • 3/11 2012. 数组美丽值求和
      • 3/12 3305. 元音辅音字符串计数 I
      • 3/13 3306. 元音辅音字符串计数 II
      • 3/14 3340. 检查平衡字符串
      • 3/15 3110. 字符串的分数
      • 3/16


3/10 2269. 找到一个数字的 K 美丽值

依次判断

def divisorSubstrings(num, k):
    """
    :type num: int
    :type k: int
    :rtype: int
    """
    n=len(str(num))
    cur = num
    MOD = 10**k
    ans=0
    for i in range(n-k+1):
        v = cur%MOD
        if v!=0 and num%v==0:
            ans+=1
        cur//=10
    return ans



3/11 2012. 数组美丽值求和

maxl[i]记录从0~i的最大值 minr[i]记录从i~n的最小值
对于nums[x] 如果maxl[x-1]<nums[x]<minr[x+1]则美丽值为2

def sumOfBeauties(nums):
    """
    :type nums: List[int]
    :rtype: int
    """
    n=len(nums)
    maxl=[0]*n
    minr=[0]*n
    maxl[0]=nums[0]
    minr[-1]=nums[-1]
    for i in range(1,n):
        maxl[i]=max(maxl[i-1],nums[i])
        minr[n-1-i]=min(minr[n-i],nums[n-1-i])
    ans = 0
    for i in range(1,n-1):
        if maxl[i-1]<nums[i] and nums[i]<minr[i+1]:
            ans+=2
        elif nums[i-1]<nums[i] and nums[i]<nums[i+1]:
            ans+=1
    return ans



3/12 3305. 元音辅音字符串计数 I

恰好k个 可以看作至少k+1个 减去 至少k个
双指针
tag用来记录元音字母出现次数

def countOfSubstrings(word, k):
    """
    :type word: str
    :type k: int
    :rtype: int
    """
    def func(k):
        l=0
        ans = 0
        curk = 0
        tag = {}
        for w in word:
            if w in "aeiou":
                tag[w] = tag.get(w,0)+1
            else:
                curk+=1
            while len(tag)==5 and curk>=k:
                lw = word[l]
                if lw in "aeiou":
                    tag[lw]-=1
                    if tag[lw]==0:
                        del tag[lw]
                else:
                    curk-=1
                l+=1
            ans+=l
        return ans
    return func(k)-func(k+1)



3/13 3306. 元音辅音字符串计数 II

恰好k个 可以看作至少k+1个 减去 至少k个
双指针
tag用来记录元音字母出现次数

def countOfSubstrings(word, k):
    """
    :type word: str
    :type k: int
    :rtype: int
    """
    def func(k):
        l=0
        ans = 0
        curk = 0
        tag = {}
        for w in word:
            if w in "aeiou":
                tag[w] = tag.get(w,0)+1
            else:
                curk+=1
            while len(tag)==5 and curk>=k:
                lw = word[l]
                if lw in "aeiou":
                    tag[lw]-=1
                    if tag[lw]==0:
                        del tag[lw]
                else:
                    curk-=1
                l+=1
            ans+=l
        return ans
    return func(k)-func(k+1)
                    



3/14 3340. 检查平衡字符串

将奇偶位置的数值相减 判断最后差值是否为0

def isBalanced(num):
    """
    :type num: str
    :rtype: bool
    """
    cur=0
    n=len(num)
    for i in range(n):
        if i%2:
            cur+=int(num[i])
        else:
            cur-=int(num[i])
    return False if cur else True



3/15 3110. 字符串的分数

按要求依次计算

def scoreOfString(s):
    """
    :type s: str
    :rtype: int
    """
    n=len(s)
    ans = 0
    for i in range(n-1):
        ans += abs(ord(s[i+1])-ord(s[i]))
    return ans



3/16





相关文章:

  • 招聘信息|基于SprinBoot+vue的招聘信息管理系统(源码+数据库+文档)
  • 【Linux网络】HTTPS
  • 社交网络分析实战(NetworkX分析Twitter关系图)
  • 第十次CCF-CSP认证(含C++源码)
  • SpringBoot MCP 入门使用
  • Axios 请求取消:从原理到实践
  • XSS漏洞学习(1)
  • 无需 Docker 也能下载镜像!轻松获取 Docker 镜像文件!
  • uniapp scroll组件下拉刷新异步更新数据列表
  • spring-aop笔记
  • 【生日蛋糕——DFS剪枝优化】
  • Vue Date 今天的开始时间与结束时间
  • 【小沐学Web3D】three.js 加载三维模型(vue3)
  • HCIA-AI人工智能笔记1:大模型技术演进与发展历程
  • Jetson Nano NX 重装系统
  • 2024年12月CCF-GESP编程能力等级认证C++编程一级真题解析
  • Mysql查看执行计划、explain关键字详解(超详细)
  • 《Electron 学习之旅:从入门到实践》
  • CSSHTML新特性
  • VUE中VNode(虚拟节点)是个啥?
  • 下辖各区密集“联手”,南京在下一盘什么样的棋?
  • 贞丰古城:新垣旧梦间的商脉与烟火
  • 夜读丨什么样的前程值得把春天错过
  • 新版城市规划体检评估解读:把城市安全韧性摆在更加突出位置
  • 临港新片区将新设5亿元启航基金:专门投向在临港发展的种子期、初创型企业
  • 韧性十足的中国外贸企业:“不倒翁”被摁下去,还会再弹起来