Reverse Integer-python

本文介绍了一种方法来翻转一个32位有符号整数的各位数字,并讨论了如何处理数值溢出的问题。该方法首先判断整数的正负号,再通过字符串反转实现数字翻转。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Given a 32-bit signed integer, reverse digits of an integer.

Example 1:

Input: 123
Output:  321

Example 2:

Input: -123
Output: -321

Example 3:

Input: 120
Output: 21

Note:
Assume we are dealing with an environment which could only hold integers within the 32-bit signed integer range. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.

解答:需要注意正负号以及数值溢出,可直接将int转换成字符串,转字符串之前判断数值的正负号,然后调用python里面的reverse函数进行反转

class Solution(object):
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        x = int(str(x)[::-1]) if x >= 0 else - int(str(-x)[::-1]) # str(x)[::-1] 反转字符
        return x if x < 2147483648 and x >= -2147483648 else 0  # 判断是否溢出


<think>嗯,用户需要Python相关的笔试题目,特别是QD-D01P-QD数据2类笔试题。这类题目通常考察数据处理和算法基础,结合引用内容来看,用户可能正在准备技术面试,需要实际编程案例。 用户提供的引用材料里有些正则表达式和XPath的例子,说明笔试可能涉及字符串处理和XML解析。虽然引用1中的grep命令是Linux工具,但Python的re模块功能类似,可以转化为Python题型。引用3的XPath示例也能对应到Python的lxml库操作。 考虑到数据类岗位,重点应该放在四个方向:一是数据处理基础如Pandas操作,二是算法实现如排序和查找,三是字符串与正则应用,四是面向对象设计。这样覆盖了笔试常见题型。 从用户要求生成相关问题来看,ta可能希望获得延伸学习方向。除了直接提供题目,最好给出同类问题的扩展思路,比如正则题可以延伸出贪婪/懒惰匹配的区别——这点正好在引用2中提到过。 安全方面要注意:给出的题目必须有明确答案,不能有歧义。比如算法题要避免时间复杂度争议,正则表达式必须经过验证。参考答案要标注“示例”字样,避免被当作唯一标准答案。 最后整理题型时按难度递进排列,基础题放前面,综合题放后面。每个题目都预留扩展提示,方便用户举一反三。比如链表题可以提示“如果考虑环状链表如何修改”,但答案中不展开,保持简洁性。</think>以下是为您整理的Python数据类笔试常见题型及示例(含参考答案),涵盖数据处理、算法、字符串操作等核心方向: --- ### 一、基础数据处理(Pandas) **题目1**:给定DataFrame `df`,包含`user_id`和`purchase_amount`列,请计算每个用户的平均消费金额(保留两位小数)。 ```python import pandas as pd # 参考答案 result = df.groupby('user_id')['purchase_amount'].mean().round(2) ``` **题目2**:合并两个DataFrame(`df1`含`id, name`,`df2`含`id, salary`),保留所有`id`的记录。 ```python # 参考答案 merged = pd.merge(df1, df2, on='id', how='outer') ``` --- ### 二、算法实现 **题目3**:实现快速排序(参考引用[^1]) ```python def quick_sort(arr): if len(arr) <= 1: return arr pivot = arr[0] left = [x for x in arr[1:] if x < pivot] right = [x for x in arr[1:] if x >= pivot] return quick_sort(left) + [pivot] + quick_sort(right) ``` **题目4**:反转单链表 ```python class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next def reverse_list(head: ListNode) -> ListNode: prev = None while head: head.next, prev, head = prev, head, head.next return prev ``` --- ### 三、正则表达式(参考引用[^1][^2]) **题目5**:从文本中提取所有形如`"price: $12.99"`的价格数字 ```python import re text = "ItemA price: $12.99, ItemB price: $5.60" # 参考答案 prices = re.findall(r'\$(\d+\.\d{2})', text) # 结果: ['12.99', '5.60'] ``` **题目6**:匹配`<img>`标签中的图片URL(非贪婪模式) ```python html = '<img src="logo.png"> <img src="banner.jpg">' # 参考答案(引用[^2]惰性匹配) urls = re.findall(r'<img src="(.*?)"', html) # 结果: ['logo.png', 'banner.jpg'] ``` --- ### 四、XML/JSON解析(参考引用[^3]) **题目7**:解析XML获取倒数第二个`<staff>`的name ```python from lxml import etree xml = """ <staffs> <staff><name>Alice</name></staff> <staff><name>Bob</name></staff> <staff><name>Charlie</name></staff> </staffs> """ # 参考答案(XPath定位) tree = etree.fromstring(xml) name = tree.xpath('//staffs/staff[last()-1]/name/text()')[0] # 结果: 'Bob' ``` --- ### 五、SQL与Python交互 **题目8**:使用SQLAlchemy查询`employee`表中薪资大于10000的记录 ```python from sqlalchemy import create_engine, Column, Integer, String from sqlalchemy.orm import declarative_base, sessionmaker Base = declarative_base() class Employee(Base): __tablename__ = 'employee' id = Column(Integer, primary_key=True) name = Column(String) salary = Column(Integer) # 查询代码 engine = create_engine('sqlite:///:memory:') Session = sessionmaker(bind=engine) session = Session() result = session.query(Employee).filter(Employee.salary > 10000).all() ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值