leetcode知识点记录

13.罗马数字转整数

  • enumerate函数
  1. 用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
  2. enumerate(sequence, [start=0])
    1. sequence:一个序列、迭代器或其他支持迭代对象。
    2. start:下标起始位置。
  3. 例:
    >>>seasons = ['Spring', 'Summer', 'Fall', 'Winter']
    >>> list(enumerate(seasons))
    [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
    >>> list(enumerate(seasons, start=1))       # 下标从 1 开始

     

20.有效的括号

  1. 是一种线性的数据结构
  2. 操作规则:
    1. 只能从一端添加和移除元素--栈顶
    2. 另一段是限制操作的--栈底
  3. 数据管理模式:LIFO 后进先出(Last In First Out)
  4. 常用操作:
    1. 存储数据,称为“入栈”或“压栈”(push)
    2. 提取提取,称为“出栈”或“弹栈”(pop)
  5. 实现:
    1. 通常可用数组或链表实现
    2. 例:功能需求:
    3. 创建一个 Stack 类,具备以下功能:
      1. Stack() - 创建新栈,不需要参数,返回空栈。
      2. push(item) - 将元素添加到栈顶,需要参数,无返回值。
      3. pop() - 删除栈顶元素,不需要参数,返回栈顶元素,并修改栈的内容。
      4. peek() - 返回栈顶元素,不需要参数,不修改栈的内容。
      5. isEmpty() - 检查栈是否为空,不需要参数,返回布尔值
      6. size() - 返回栈中元素个数,不需要参数,返回整数
    4. 栈与列表的对应操作:

代码:

复制代码
class Stack:
    def __init__(self):
        self.stack = []
        self.size = 0
    def push(self, item):
        self.stack.append(item) # 添加元素
        self.size += 1 # 栈元素数量加 1
    def pop(self):
        pop = self.stack.pop() # 删除栈顶元素
        self.size -= 1 # 栈元素数量减 1
        return pop
    def isEmpty(self):
        return self.stack == []
    def sizes(self):
        return self.size
    def peek(self):
        return self.stack[-1]

if __name__ = '__main__':
    # 这里假定 A 是 4,B 是 'dog',建议每一步的结果用 print() 输出看一下
    s = Stack()
    s.isEmpty()
    s.push(4)
    s.push('dog')
    s.peek()
    s.pop()
    s.isEmpty()
复制代码
  •  字典
  1. 是一种可变容器模型,且可存储任意类型对象。
  2. 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 。
  3. 键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。
  4. 访问字典的值:dict[key]。
  5. 修改字典
    1. 更新:dict['key'] = new_value
    2. 添加:dict['new_key'] = new_value
  6. 删除字典元素
    1. 删除键是'Name'的条目:del dict['Name']
    2. 清空字典所有条目:dict.clear()
    3. 删除字典:del dict
  7. 字典键的特性:字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。
    1. 不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住。
    2. 键必须不可变,所以可以用数字,字符串或元组充当,列表不行。
  8. 字典内置函数&方法

 

序号函数及描述
1 cmp(dict1, dict2)比较两个字典元素。
2 len(dict)计算字典元素个数,即键的总数。
3 str(dict)输出字典可打印的字符串表示。
4 type(variable)返回输入的变量类型,如果变量是字典就返回字典类型。
序号函数及描述
1 dict.clear()删除字典内所有元素 
2 dict.copy()返回一个字典的浅复制
3 dict.fromkeys(seq[, val])创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值
4 dict.get(key, default=None)返回指定键的值,如果值不在字典中返回default值
5 dict.has_key(key)如果键在字典dict里返回true,否则返回false
6 dict.items()以列表返回可遍历的(键, 值) 元组数组
7 dict.keys()以列表返回一个字典所有的键
8 dict.setdefault(key, default=None)和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
9 dict.update(dict2)把字典dict2的键/值对更新到dict里
10 dict.values()以列表返回字典中的所有值
11 pop(key[,default])删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
12 popitem()返回并删除字典中的最后一对键和值。

 

 

 

461.汉明距离

  • 二进制,十进制,十六进制转换
  1. 转换为十进制:使用 int() 函数 ,第一个参数是字符串 ‘0Xff’ ,第二个参数是说明,这个字符串是几进制的数。 转化的结果是一个十进制数。
    1. 十六进制,例:int('0xf', 16)
    2. 二进制,例:int('1010011', 2)
    3. 八进制,例:int('17', 8)
  2. 转换为十六进制:二进制、八进制先转换为十进制再转换为十六进制。
    1. 十进制,例:hex(1033)
    2. 二进制,例:hex(int('1010011', 2))
    3. 八进制,例:hex(int('17', 8))
  3. 转换为二进制:八进制、十六进制先转换为十进制再转换为二进制。
    1. 十进制,例:bin(10)
    2. 八进制,例:bin(int('17', 8))
    3. 十六进制,例:bin(int('ff', 16))
  4. 转换为八进制:oct 函数可将任意进制的数转换成 8进制的。
    1. 二进制,例:oct(ob1010)
    2. 十进制,例:oct(11)
    3. 十六进制,例:oct(0xf)
  • 运算符:https://www.runoob.com/python/python-operators.html
posted @   hccccch  阅读(47)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示