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

【LeetCode】修炼之路-0007- Reverse Integer (整数反转)【python】

题目

  1. Reverse Integer
    Given a signed 32-bit integer x, return x with its digits reversed. If reversing x causes the value to go outside the signed 32-bit integer range [-231, 231 - 1], then return 0.

Assume the environment does not allow you to store 64-bit integers (signed or unsigned).

Example 1:

Input: x = 123
Output: 321

Example 2:

Input: x = -123
Output: -321

Example 3:

Input: x = 120
Output: 21

Constraints:

-2^31 <= x <= 2^31 - 1

基本思路

今天的题目对我们python新手非常友好,我们有两种思路,一种是转成字符串,反转加序号,一种是用数学的方式取余,余数*10,再加上下一步的取余。
很清晰的思路,唯一的坑就是转换的结果可能超过32位的上下界,判断输出的结果做一下限制。

注:使用python的我们要时刻把头埋低,比如用C语言解这个题,就没有转换成字符串的流畅解法,然后也不能在最后比较是不是越界,因为python的伪int类型是无限精度的,而c语言等,声明了32位int就是32位,需要计算前就进行判断,不然结果根本出不来。我们屏住呼吸,把这个题悄悄刷掉。嘘!

转换成字符串→反转字符串→还原符号→如果溢出就输出0→没问题就输出结果
这个比较简单直接给代码了

class Solution:def reverse(self, x: int) -> int:# 转为字符串,并处理符号s = str(abs(x))# 反转字符串res = int(s[::-1]) # 切片操作,见知识点# 还原符号if x < 0:res = -res# 检查是否溢出    if res > 2**31 - 1 or res < -2**31:return 0return res

在这里插入图片描述
这个结果多刷几次就会不一样,落点还是要在自己的算法是否足够优雅清晰
在这里插入图片描述

思路二

这个题当然也可以用res*10+x%10这种数学的方式去结题,而不用借助强制类型转换,热心的勇者赶快来试试!这里贴一下别人的代码,也不卖关子了

class Solution:def reverse(self, x: int) -> int:res = 0sign = -1 if x < 0 else 1x = abs(x)while(x > 0):res = res * 10 + x % 10x //= 10if res > 2**31 - 1:return 0return res * sign

知识点

python的slice切片

python的这个sequence对象切片,也是python的核心特性之一,这里只是蜻蜓点水的列了一些,更多的用法,还要在代码实践中多多体会才行。

基本语法

sequence[start:end:step]

参数说明

# start: 起始索引(包含)
# end: 结束索引(不包含)
# step: 步长,可正可负

基础用法

s = "Hello World"# 基本切片
print(s[0:5])     # "Hello"
print(s[:5])      # "Hello" (省略start)
print(s[6:])      # "World" (省略end)
print(s[:])       # "Hello World" (复制整个序列)# 使用负索引
print(s[-5:])     # "World"
print(s[:-6])     # "Hello"# 使用step
print(s[::2])     # "HloWrd" (每隔一个字符)
print(s[::-1])    # "dlroW olleH" (反转)

进阶理解

对于字符串s=“Hello World”

字符Hello(空格)World
正向索引012345678910
负向索引-11-10-9-8-7-6-5-4-3-2-1

一些奇怪的切片示例,这里的示例没有上下文,也不具备明显的逻辑动机,看起来不直观很正常,记住这里的::2, ::-1 就行。可以用来生成奇偶序列或者反转。

切片表达式结果说明
s[0:5]“Hello”从索引0到4(不包含5)
s[-5:]“World”从倒数第5个到结束
s[:5]“Hello”从开始到索引4
s[6:]“World”从索引6到结束
s[::2]“HloWrd”每隔一个字符取一个
s[::-1]“dlroW olleH”反转整个字符串
s[-5:-2]“Wor”从倒数第5个到倒数第3个

相关文章:

【LeetCode】修炼之路-0007- Reverse Integer (整数反转)【python】

题目 Reverse Integer Given a signed 32-bit integer x, return x with its digits reversed. If reversing x causes the value to go outside the signed 32-bit integer range [-231, 231 - 1], then return 0. Assume the environment does not allow you to store 64-b…...

【Flutter】页面布局:线性布局(Row 和 Column)

在 Flutter 中&#xff0c;布局&#xff08;Layout&#xff09;是应用开发的核心之一。通过布局组件&#xff0c;开发者可以定义应用中的控件如何在屏幕上排列。Row 和 Column 是 Flutter 中最常用的两种线性布局方式&#xff0c;用于水平和垂直排列子组件。在本教程中&#xf…...

C语言巨难题:执行操作可获得的最大总奖励 I(C语言版)

1.题目&#xff1a; 给你一个整数数组 rewardValues&#xff0c;长度为 n&#xff0c;代表奖励的值。 最初&#xff0c;你的总奖励 x 为 0&#xff0c;所有下标都是 未标记 的。你可以执行以下操作 任意次 &#xff1a; 从区间 [0, n - 1] 中选择一个 未标记 的下标 i。如果…...

【力扣】GO解决子序列相关问题

文章目录 一、引言二、动态规划方法论深度提炼子序列问题的通用解法模式 三、通用方法论应用示例&#xff1a;最长递增子序列&#xff08;LeetCode题目300&#xff09;Go 语言代码实现 四、最长连续递增序列&#xff08;LeetCode题目674&#xff09;Go 语言代码实现 五、最长重…...

Ubuntu20.04安装VM tools并实现主机和虚拟机之间文件夹共享

1、Ubuntu20.04安装VM tools 参考这个&#xff0c;很详细&#xff1a;Ubuntu 20.04 安装 VMwareTools 教程 2、实现主机与VMware虚拟机共享文件夹 设置共享文件夹参考&#xff1a;windows和虚拟机互传文件的三种方式 挂载操作参考&#xff1a;主机与VMware虚拟机共享文件夹&…...

Linux 学习笔记(十七)—— 文件系统

终极目标&#xff1a;理解 inode 和 软硬连接&#xff1b; 文件系统&#xff1a;Ext2; 文件 文件内容 文件属性; ——> 磁盘上存储的文件 存储的文件内容 存储的文件属性&#xff1b; Linux系统中&#xff1a;文件内容使用数据块存储&#xff0c;文件属性使用inode(固定…...

【计算机网络 - 基础问题】每日 3 题(五十八)

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?typeblog &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞…...

Netty入门基础:IO模型中BIO\NIO概念及区别【附演示代码】

文章目录 &#x1f600;BIO&#x1f4a2;实战demo &#x1f308;NIO&#x1f3cd;Buffer核心属性核心方法 &#x1f397;Channel&#x1f388;Selector核心方法 &#x1f9e8;实战demo &#x1f3a8;粘包与半包 &#x1f600;BIO 传统IO模型&#xff0c;同步阻塞&#xff0c;每…...

vue2 使用环境变量

一. 在根目录下创建.env.xxx文件 .env 基础系统变量&#xff0c;无论何种环境&#xff0c;都可使用其中配置的值&#xff0c;其他环境中的变量会覆盖.env中的同名变量。 .env.development 开发环境 .env.production 生产环境 .env.staging 测试环境 二. 内容格式 vue2 使用是以…...

数据预处理

继续提取代码片段&#xff1a; 12. **导入iris数据集并查看前5行数据**&#xff1a; python from sklearn.datasets import load_iris iris load_iris() X iris.data print(iris数据集的维度为:, X.shape) print(iris数据集的前5行数据为:\n, X[:5]) …...

django宠物领养管理系统-计算机毕业设计源码26858

目录 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章小结 3 系统总体设计 3…...

使用TeamViewer远程局域网内的两台电脑

有个场景&#xff0c;有人还不知道TV可以局域网操作&#xff0c;记录一下。 主要就是修改设置&#xff0c;将取消激活改为接受 然后输入受控端的ip即可...

GUI简介、Swing的常用组件、java程序的运行过程、class文件、JAR、runable_jar、双括号初始化

GUI简介 GUI&#xff1a;图形用户界面&#xff0c;在计算机中采用图形的方式显示用户界面 java的GUI开发 AWT&#xff1a;java最早推出的GUI编程开发包&#xff0c;界面风格跟随操作系统SWT&#xff1a;eclipse就是java使用SWT开发的Swing&#xff1a;在AWT的基础上扩充了功能…...

@Autowired和@Resource和getBean()区别

今天遇到一个对我来说很奇葩的错误&#xff0c;我想在Service中注入bean&#xff0c;我这里使用了Autowired和Resource都不能注入&#xff0c;导致初始化失败&#xff0c;使用了getBean()方法就可以注入。从来没有遇到过这个问题。后来我查询了一下&#xff0c;才明白了原理。我…...

Merlion笔记(四):添加一个新的预测模型

文章目录 1 模型配置类2 模型类3 运行模型&#xff1a;一个简单的例子4 可视化5 定量评估6 定义一个基于预测器的异常检测器 本文提供了一个示例&#xff0c;展示如何向 Merlion 添加一个新的预测模型,遵循 CONTRIBUTING.md 中的说明。建议在阅读本篇文章之前&#xff0c;先查…...

【论文阅读】ESRGAN

学习资料 论文题目&#xff1a;增强型超分辨率生成对抗网络&#xff08;ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks&#xff09;论文地址&#xff1a;[1809.00219] ESRGAN&#xff1a;增强型超分辨率生成对抗网络代码&#xff1a;xinntao / ESRGAN&am…...

电脑异常情况总结

文章目录 笔记本无症状息屏黑屏 笔记本无症状息屏黑屏 &#x1f34e; 问题描述&#xff1a; 息屏导致黑屏&#xff1b;依次操作计算机--》右键--》管理--》事件查看器--》Windows日志--》系统&#xff1b;从息屏到异常黑屏之间出现了很多错误&#xff0c;如下&#xff1a;事件…...

[项目详解][boost搜索引擎#1] 概述 | 去标签 | 数据清洗 | scp

目录 一、前言 二、项目的相关背景 三、搜索引擎的宏观原理 四、搜索引擎技术栈和项目环境 五、正排索引 VS 倒排索引--原理 正排索引 分词 倒排索引 六、编写数据去除标签和数据清洗模块 Parser 1.数据准备 parser 编码 1.枚举文件 EnumFile 2.去标签ParseHtml(…...

PL/I语言的起源?有C语言,有B语言和A语言吗?为什么shell脚本最开始可能有#!/bin/bash字样?为什么不支持嵌套注释?

PL/I语言的起源 在20世纪50~60年代&#xff0c;当时主流的编程语言是COBOL/FORTRAN/ALGOL等&#xff0c;IBM想要设计一门通用的编程语言&#xff0c;已有的编程语言无法实现此要求&#xff0c;故想要设计一门新语言&#xff0c;即是PL/I. PL/I是Programming Language/One的缩写…...

gin入门教程(3):创建第一个 HTTP 服务器

首先设置golang github代理&#xff0c;可解决拉取git包的时候&#xff0c;无法拉取的问题&#xff1a; export GOPROXYhttps://goproxy.io再查看自己的go版本&#xff1a; go version我这里的版本是&#xff1a;go1.23.2 linux/arm64 准备工作做好之后就可以进行开发了 3.…...

Vue+ECharts+iView实现大数据可视化大屏模板

Vue数据可视化 三个大屏模板 样式还是比较全的 包括世界地图、中国地图、canvas转盘等 项目演示&#xff1a; 视频&#xff1a; vue大数据可视化大屏模板...

el-table 表格设置必填项

el-table 表格设置必填项 要在 el-table 中集成 el-form 来设置必填项&#xff0c;并进行表单验证&#xff0c;可以使用 Element UI 提供的表单验证功能。下面是一个详细的示例&#xff0c;展示了如何在 el-table 中使用 el-form 来设置必填项&#xff0c;并进行验证。 示例代…...

vivo 轩辕文件系统:AI 计算平台存储性能优化实践

在早期阶段&#xff0c;vivo AI 计算平台使用 GlusterFS 作为底层存储基座。随着数据规模的扩大和多种业务场景的接入&#xff0c;开始出现性能、维护等问题。为此&#xff0c;vivo 转而采用了自研的轩辕文件系统&#xff0c;该系统是基于 JuiceFS 开源版本开发的一款分布式文件…...

Vue学习笔记(四)

事件处理 我们可以使用 v-on 指令 (通常缩写为 符号) 来监听 DOM 事件&#xff0c;并在触发事件时执行一些 JavaScript。用法为 v-on:click"methodName" 或使用快捷方式 click"methodName" 事件处理器的值可以是&#xff1a; 内联事件处理器&#xff1…...

发送短信,验证码

短信 注册阿里云的账号 开通短信服务 测试短信服务是否可用 导入jar <!-- 短信相关 --><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.6.0</version><…...

国内大语言模型哪家更好用?

大家好&#xff0c;我是袁庭新。 过去一年&#xff0c;AI大语言模型在爆发式增长&#xff0c;呈现百家争鸣之态。国内外相关厂商积极布局&#xff0c;并相继推出自家研发的智能化产品。 我在工作中已习惯借助AI来辅助完成些编码、创作、文生图等任务&#xff0c;甚至对它们产…...

OTP一次性密码、多因子认证笔记

文章目录 双因子认证(多因子认证)otp算法(ONE-TIME PASSWORD)otp算法大概分为几部 otp的机制服务端客户端(app端)两种主流算法otp流程图 otp是通用的吗 手机验证码天天在用&#xff0c;但是居然不知道这个是otp&#xff0c;伤自尊了&#xff0c;必须弄清原理。 先要知道几个概念…...

玉米生长阶段检测系统源码&数据集全套:改进yolo11-dysample

改进yolo11-DLKA等200全套创新点大全&#xff1a;玉米生长阶段检测系统源码&#xff06;数据集全套 1.图片效果展示 项目来源 人工智能促进会 2024.10.24 注意&#xff1a;由于项目一直在更新迭代&#xff0c;上面“1.图片效果展示”和“2.视频效果展示”展示的系统图片或者视…...

【机器学习】决策树算法

目录 一、决策树算法的基本原理 二、决策树算法的关键概念 三、决策树算法的应用场景 四、决策树算法的优化策略 五、代码实现 代码解释&#xff1a; 在机器学习领域&#xff0c;决策树算法是一种简单直观且易于理解的分类和回归方法。它通过学习数据特征和决策规则&#…...

P2818 天使的起誓

天使的起誓 题目描述 Tenshi 非常幸运地被选为掌管智慧之匙的天使。在正式任职之前&#xff0c;她必须和其他新当选的天使一样要宣誓。 宣誓仪式是每位天使各自表述自己的使命&#xff0c;他们的发言稿放在 n n n 个呈圆形排列的宝盒中。这些宝盒按顺时针方向被编上号码 1…...

福田莲花北网站建设/个人博客网页设计

1. 悲观锁与乐观锁我们都知道&#xff0c;cpu是时分复用的&#xff0c;也就是把cpu的时间片&#xff0c;分配给不同的thread/process轮流执行&#xff0c;时间片与时间片之间&#xff0c;需要进行cpu切换&#xff0c;也就是会发生进程的切换。切换涉及到清空寄存器&#xff0c;…...

网站后台管理员职责/班级优化大师免费下载电脑版

需求&#xff1a;1、实现清屏功能 2、实现不区分大小写功能 3、添加功能能添加新的命令符 设计&#xff1a;1、使用system("cls")清屏。 2、使用strlwr()函数把大写都变成小写 3、(1)使用菜单做选择项&#xff0c;让用户进入添加命令功能 (2)写进文件&#xff0c;再从…...

重庆网站建设/肇庆seo排名

本文主要介绍的是python3中对str&#xff08;字符串&#xff09;的使用操作总结&#xff0c;文中介绍的非常详细&#xff0c;需要的朋友们下面来一起看看吧。 __add__函数 (在后面追加字符串) s1 Hello s2 s1.__add__( boy!) print(s2) #输出&#xff1a;Hello boy! __contain…...

焦作网站制作-焦作网站建设-焦作网络公司-维科网络/成人再就业技能培训班

ajax和backbone在本文中&#xff0c;我们将使用EaselJS和Backbone.js构建一个简单的拖放应用程序。 骨干网将通过提供模型 &#xff0c; 集合和视图来为我们的应用程序提供结构。 画架将使使用HTML5 canvas元素变得容易。 尽管对于这样一个简单的应用程序&#xff0c;我们不一定…...

tob0.4 wordpress/竞价托管推广哪家好

2006 年底&#xff0c;Sun 公司发布了 Java Standard Edition 6&#xff08;Java SE 6&#xff09;的最终正式版&#xff0c;代号 Mustang&#xff08;野马&#xff09;。跟 Tiger&#xff08;Java SE 5&#xff09;相比&#xff0c;Mustang 在性能方面有了不错的提升。与 Tige…...

永久免费手机建站平台/小程序开发哪家更靠谱

gin框架18--将 request body 绑定到不同的结构体中介绍案例说明介绍 本文主要介绍如何将 request body 绑定到不同的结构体中&#xff0c;并加以案例说明。 案例 案例1&#xff1a; 使用 c.ShouldBind&#xff0c; 但不可重用 package mainimport ("github.com/gin-go…...