leetcode知识点记录
13.罗马数字转整数
- enumerate函数
- 用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
- enumerate(sequence, [start=0])
- sequence:一个序列、迭代器或其他支持迭代对象。
- start:下标起始位置。
- 例:
>>>seasons = ['Spring', 'Summer', 'Fall', 'Winter'] >>> list(enumerate(seasons)) [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')] >>> list(enumerate(seasons, start=1)) # 下标从 1 开始
20.有效的括号
- 栈
- 是一种线性的数据结构
- 操作规则:
- 只能从一端添加和移除元素--栈顶
- 另一段是限制操作的--栈底
- 数据管理模式:LIFO 后进先出(Last In First Out)
- 常用操作:
- 存储数据,称为“入栈”或“压栈”(push)
- 提取提取,称为“出栈”或“弹栈”(pop)
- 实现:
- 通常可用数组或链表实现
- 例:功能需求: 创建一个 Stack 类,具备以下功能:
- Stack() - 创建新栈,不需要参数,返回空栈。
- push(item) - 将元素添加到栈顶,需要参数,无返回值。
- pop() - 删除栈顶元素,不需要参数,返回栈顶元素,并修改栈的内容。
- peek() - 返回栈顶元素,不需要参数,不修改栈的内容。
- isEmpty() - 检查栈是否为空,不需要参数,返回布尔值
- size() - 返回栈中元素个数,不需要参数,返回整数
- 栈与列表的对应操作:
代码:
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()
- 字典
- 是一种可变容器模型,且可存储任意类型对象。
- 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 。
- 键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。
- 访问字典的值:dict[key]。
- 修改字典
- 更新:dict['key'] = new_value
- 添加:dict['new_key'] = new_value
- 删除字典元素
- 删除键是'Name'的条目:del dict['Name']
- 清空字典所有条目:dict.clear()
- 删除字典:del dict
- 字典键的特性:字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。
- 不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住。
- 键必须不可变,所以可以用数字,字符串或元组充当,列表不行。
- 字典内置函数&方法
序号 | 函数及描述 |
---|---|
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.汉明距离
- 二进制,十进制,十六进制转换
- 转换为十进制:使用 int() 函数 ,第一个参数是字符串 ‘0Xff’ ,第二个参数是说明,这个字符串是几进制的数。 转化的结果是一个十进制数。
- 十六进制,例:int('0xf', 16)
- 二进制,例:int('1010011', 2)
- 八进制,例:int('17', 8)
- 转换为十六进制:二进制、八进制先转换为十进制再转换为十六进制。
- 十进制,例:hex(1033)
- 二进制,例:hex(int('1010011', 2))
- 八进制,例:hex(int('17', 8))
- 转换为二进制:八进制、十六进制先转换为十进制再转换为二进制。
- 十进制,例:bin(10)
- 八进制,例:bin(int('17', 8))
- 十六进制,例:bin(int('ff', 16))
- 转换为八进制:oct 函数可将任意进制的数转换成 8进制的。
- 二进制,例:oct(ob1010)
- 十进制,例:oct(11)
- 十六进制,例:oct(0xf)
- 运算符:https://www.runoob.com/python/python-operators.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现