LeetCode力扣-----Python----Day2

整数反转 No.7

题目描述:在这里插入图片描述

第一想法:

第一反应转字符串进行切片反转再转int类型

class Solution:
    def reverse(self, x: int) -> int:
        
        if x<0 :				#逆序step=-1.区间为 (stop,start] 舍去第一位的符号,且为开区间所以stop=0
            y=-1*(int)(str(x)[:0:-1]) 
        else:
            y=(int)(str(x)[::-1])
        if y < (-2)**31 or y > 2**31:#处理越界
            return 0
        else:
            return y

第二想法:
  • 基于本科学过的知识,可以使用操作(取模%和整除\ 实现取位) +数据结构(实现反向输出)

New skill :

  • 依据Day1 学的逆序,想用reverse()函数,但是必须是list类型,万能的Python不行,我脑子也不够清醒,这哪个语言好像都不行,还是第一反应靠谱。
	x_str=list(12)
---------------------------------------------------------------------------
TypeError: 'int' object is not iterable

Solution_online(网上解法):

  1. 正负位设flag,越界设定上下线
class Solution(object):
    def reverse(self, x):
        maxi=2147483647
        mini=-2147483648
        res=0
        judge=True
        if x<0: 
            x=-x
            judge=False
        while x!=0:
            res=res*10+x%10
            x=int(x/10)
        if judge==False: res=-res
        if res>maxi or res<mini : return 0
        else : return res

作者:user9429s
链接:https://leetcode-cn.com/problems/two-sum/solution/che-pythonjie-fa-by-user9429s/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  
  1. 官网正解_version:C and Java使用数学方法+考虑越界
    本科C语言练习记得有个这个题目,即使用取模除法来得到各个位上的数字
    我们想重复“弹出”x最后一位数字,并将它“推入”到rev 的后面。最后,rev 将与 x相反
    要在没有辅助堆栈 / 数组的帮助下 “弹出” 和 “推入” 数字,我们可以使用数学方法。
//pop operation:        “弹出”
pop = x % 10;
x /= 10;

//push operation:        “推入”
temp = rev * 10 + pop;
rev = temp;				//作者:LeetCode

在这里插入图片描述

重做:第二种想法就是官网的处理,由于Python语法还不熟,应该有专门的结构体

O(∩_∩)O哈哈哈~C语言基础暴露出来了,时间匆忙,一有空我就回来更

所以道歉一哈:
Functional language about apology

  1. Silly me.
  2. Don’t hold this against me
  3. Be happy to take the blame, if …
  4. I don’t know what came over me //我不知道自己是怎么回事
  5. I take full responsibility for …

我是基础非常差的up主,时间不多,思想简单,个人随笔,勿喷

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值