解决leetcode第3753题范围内总波动值II

3753.范围内总波动值II

难度:困难

问题描述:

给你两个整数num1和num2,表示一个闭区间num1,num2

一个数字的波动值定义为该数字中峰和谷的总数:

如果一个数位严格大于其两个相邻数位,则该数位为峰。

如果一个数位严格小于其两个相邻数位,则该数位为谷。

数字的第一个和最后一个数位不能是峰或谷。

任何少于3位的数字,其波动值均为0。

返回范围num1,num2内所有数字的波动值之和。

示例1:

输入:num1=120,num2=130

输出:3

解释:

在范围120,130内:

120:中间数位2是峰,波动值=1。

121:中间数位2是峰,波动值=1。

130:中间数位3是峰,波动值=1。

范围内所有其他数字的波动值均为0。

因此,总波动值为1+1+1=3。

示例2:

输入:num1=198,num2=202

输出:3

解释:

在范围198,202内:

198:中间数位9是峰,波动值=1。

201:中间数位0是谷,波动值=1。

202:中间数位0是谷,波动值=1。

范围内所有其他数字的波动值均为0。

因此,总波动值为1+1+1=3。

示例3:

输入:num1=4848,num2=4848

输出:2

解释:

数字4848:第二个数位8是峰,第三个数位4是谷,波动值为2。

提示:

1<=num1<=num2<=1015

问题分析:

解决本问题,设计函数get_peaks_and_valleys_in_num(n),其功能是从一个数字n中找出出现的峰和谷的总数并返回,在主程序中遍历从num1到num2的所有数字,并将出现的峰和谷的数量累加求和,最后得到num1,num2内所有数字的波动值之和。

程序如下:

python 复制代码
#统计一个数字n中有多少个峰和谷,返回统计的结果
def get_peaks_and_valleys_in_num(n):
    s=str(n)
    n=len(s)
    if n<3:
        return 0
    else:
        c=0
        for i in range(1,n-1):
            if (s[i]>s[i-1] and s[i]>s[i+1]) or (s[i]<s[i-1] and s[i]<s[i+1]):
                c=c+1
        return c

#主程序
num1=int(input('pls input num1='))
num2=int(input('pls input num2='))
t=0
for i in range(num1,num2+1):
    t=t+get_peaks_and_valleys_in_num(i)
print(f'[{num1},{num2}]内所有数字的波动值之和为{t}')

运行实例一

pls input num1=120

pls input num2=200

120,200内所有数字的波动值之和为44

运行实例二

pls input num1=42315

pls input num2=42316

42315,42316内所有数字的波动值之和为6

运行实例三

pls input num1=23

pls input num2=30

23,30内所有数字的波动值之和为0

相关推荐
qetfw4 分钟前
MWU:Vue 3 + FastAPI 的 MaaFramework 跨平台 WebUI 源码
前端·vue.js·python·fastapi·开源项目·效率工具
测试老哥11 分钟前
接口自动化测试分层设计与实践总结
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
大模型码小白37 分钟前
企业级检索增强后端集成:Java 服务如何管理知识库版本
java·服务器·开发语言·人工智能·python·microsoft
农村小镇哥1 小时前
Python3开发快速获取图片的文字
开发语言·python
geovindu1 小时前
go:Backtracking Algorithm
开发语言·后端·算法·golang·回溯算法
FriendshipT1 小时前
Ultralytics:解读Proto模块
人工智能·pytorch·python·深度学习·目标检测
zhiSiBuYu05171 小时前
Python3 循环语句新手实战指南
python
ShirleyWang0121 小时前
Day02 K3s NGF(Nginx Gateway Fabric)单 Worker 环境网关更新与故障处置 SOP
linux·服务器·python·k8s·k3s
ZDQNFU1 小时前
ORM之SQLAlchemy教程
后端·python
微露清风1 小时前
模拟算法学习记录
学习·算法