写点什么

LeetCode 刷题 07- 简单 整数翻转

用户头像
ベ布小禅
关注
发布于: 2021 年 08 月 23 日


前言

算法作为极其重要的一点,是大学生毕业找工作的核心竞争力,所以为了不落后与人,开始刷力扣算法题!


第一遍,不求最优解,但求能过!!!


📢 这是我刷第 2/100 道力扣简单题

一、题目描述

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。


如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。


假设环境不允许存储 64 位整数(有符号或无符号)。


难度:简单

二、题目解析

数字翻转,意思就是,给你一个 152 返回 251,给-321,返回-123


  1. 我想到的是,先转为字符串

  2. 然后判断第一个元素是否为-

  3. 然后去掉负号,再倒序

  4. 反转后转为整数,判断大小

  5. 根据数学方法来看,怎么将这个整数翻转

  6. 首先我们需要知道,把一个整数拆开,需要些什么操作

  7. 先除以是,然后取余数,余数就是整数的个位数,然后再把整数减去个位数,再除以十

  8. 然后接着上面的操作,直到取余数为 0

  9. 大致流程:123,取 10 的余数,3,减去 3 为 120,除以十为 12

  10. 取 10 的余数,2,减三除以十,1

  11. 取 10 的余数,1,减 1 除以十,0

  12. 取 10 的余数,0,结束循环

  13. 找列表接收个位数的值,然后遍历列表,将其相加

三、代码

第一种方法的代码:


#!/usr/bin/env python# -*- coding: utf-8 -*-# @Author: Smly# @datetime: 2021/7/24 18:06# @Version: 1.0
class Solution: def reverse(self, x: int) -> int: """ 转为字符串翻转 :param x: 被翻转的数 :return: 翻转完成的数 """ if x < 0: x = -x s = str(x)[::-1] ends = -1 * int(s) elif x > 0: ends = int(str(x)[::-1]) else: ends = 0 if -2 ** 31 <= ends <= 2 ** 31 - 1: return ends else:
return 0
复制代码


第二种方法的的代码:


#!/usr/bin/env python# -*- coding: utf-8 -*-# @Author: Smly# @datetime: 2021/7/24 18:09 # @Version: 1.0class Solution:    def reverse(self, x: int) -> int:        """        取余从后一个一个拿数        :param x: 被翻转的数        :return: 翻转完成的数        """        i = 0        if x < 0:            x = -x            xsum = 0            n = len(str(x))            while i < n:                xsum += (x % 10) * 10 ** (n - 1)                x = (x - (x % 10)) / 10                n -= 1            if -2 ** 31 <= xsum <= 2 ** 31 - 1:                return int(xsum) * -1            else:                return 0        elif x > 0:            xsum = 0            n = len(str(x))            while i < n:                xsum += (x % 10) * 10 ** (n - 1)                x = (x - (x % 10)) / 10                n -= 1            if -2 ** 31 <= xsum <= 2 ** 31 - 1:                return int(xsum)            else:                return 0        else:            return 0
复制代码

结语

坚持最重要,每日一题必不可少!



发布于: 2021 年 08 月 23 日阅读数: 5
用户头像

ベ布小禅

关注

还未添加个人签名 2021.04.06 加入

平平无奇一萌新,默默无闻学IT,我是布小禅,一个网络专业却对编程及其感兴趣的小白! 目前在学python和Java,都很浅显,平时爱写点学习笔记。IT技术交流群:1039347613 也可以联系本人企鹅:2228660752 v:Smly0413

评论

发布
暂无评论
LeetCode刷题07-简单 整数翻转