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

python leetcode简单练习(1)

9.回文数


方法思路

  1. 处理特殊情况

    • 负数不可能是回文数。

    • 末尾为0的非零整数不可能是回文数。

  2. 反转一半数字

    • 通过逐位反转整数的后半部分,直到反转的部分不小于剩余的前半部分。

    • 比较反转后的部分与剩余部分是否相等(偶数位情况)或反转部分除以10后是否与剩余部分相等(奇数位情况)。

注意对特殊值0的处理 

class Solution(object):
    def isPalindrome(self,x):
        if x < 0 or (x%10 == 0 and x != 0) :
            return False
        else:
            a = 0
            while x > a:
                a = a * 10 + x % 10
                x = x // 10
            if x == a or a//10 == x :
                return True
            else:
                return False

13.罗马数字转整数


#13.罗马数字转整数

class solution(object):
    def romanToInt(self,s):
        roman_to_int = {
            'I': 1,
            'V': 5,
            'X': 10,
            'L': 50,
            'C': 100,
            'D': 500,
            'M': 1000
        }
        total = 0
        n = len(s)
        for i in range(n-1):
            current_s = roman_to_int[s[i]]
            next_s = roman_to_int[s[i+1]]
            if current_s < next_s:
                total -= roman_to_int[s[i]]
            else:
                total += roman_to_int[s[i]]
        total += roman_to_int[s[-1]]
        return total

14.最长公共前缀

方法思路

  1. 处理特殊情况:如果输入数组为空,直接返回空字符串。

  2. 基准字符串:以第一个字符串作为基准,逐个字符进行比较。

  3. 逐字符检查:遍历基准字符串的每个字符位置,检查其他字符串在该位置上的字符是否相同。

  4. 终止条件:若遇到任一字符串长度不足或字符不匹配,立即返回当前已匹配的前缀部分。

  5. 返回结果:若所有字符均匹配,返回整个基准字符串作为最长公共前缀。

class Solution(object):
    def longestCommonPrefix(self,strs):
        if not strs:
            return ""
        else:
            first_s = strs[0]
            for i in range(len(first_s)):
                current_s = first_s[i]
                for j in strs[1:]:
                    if i >= len(j) or j[i] != current_s:
                        return first_s[:i]
        return first_s

http://www.dtcms.com/a/102087.html

相关文章:

  • 【FreeRTOS】任务(TASK)——任务的创建(源码解读)
  • Qt中绘制不规则控件
  • ​Linux 中 nmap 命令详解:从基础到实战的全面指南
  • dfs记忆化搜索刷题 + 总结
  • 如何判断列表a中元素是否在列表b中
  • [leetcode]2685. 统计完全连通分量的数量
  • C++ 结构体、结构体指针与结构体指针数组详解
  • RabbitMQ 的三种集群模式
  • ETL数据集成:企业数字化转型的核心驱动力与实施策略
  • C++ Primer Plus 编程练习题 第五章 循环和关系表达式
  • 22-ArkTs 常见错误
  • DataPlatter:利用最少成本数据提升机器人操控的泛化能力
  • K8S学习之基础六十四:helm常用命令
  • 戴尔电脑安装Ubuntu双系统
  • 设计模式中的“万能转换器”——适配器模式
  • 【AI News | 20250331】每日AI进展
  • 鸿蒙编译构建-多目标产物
  • Scala循环守卫
  • vi编辑器常见命令
  • stm32第十一天外部中断按键控制灯
  • 自定义类型:结构体
  • 【Java】——数组深度解析(从内存原理到高效应用实践)
  • CentOS 7上手动强制升级docker-compose(不使用yum)
  • 苍穹外卖项目结构
  • Loadrunner报错Virtual User Generator 初始化用户生成器失败 初始化失败
  • AI产品的架构(分四层)
  • ArkUI —— 组件导航
  • zk基础—1.一致性原理和算法二
  • Android:Dialog的使用详解
  • K8S 存储:emptyDir、hostPath、local详解