第四期书生大模型实战营(【入门岛】- 第2关 | Python 基础知识 )
文章目录
- 1. 任务介绍
- 2. 任务一
- 2.1. 提交代码与leetcode提交通过截图
- 2.2. 解决方案的代码
- 1. 解释:
- 2. 示例:
- 3.任务二
- 3.1. 使用VScode连接开发机
- 1.打开VSCODE
- 2.添加SSH链接
- 3.VSCODE链接远程环境
- 3.2. 本地vscode在远程开发机上新建Leetcode383.py文件
- 3.3. Leetcode383.py代码设置断点
- 3.4.准备调试Leetcode383.py函数
- 3.5. 运行和调试
- 3.6. 查看函数体内变量
- 3.7. 打印统计结果
- 4. 任务三(可选)
1. 任务介绍
任务概览
任务类型 | 任务内容 | 预计耗时 |
---|---|---|
闯关任务 | Leetcode 383(笔记中提交代码与leetcode提交通过截图) | 15mins |
闯关任务 | Vscode连接InternStudio debug笔记 | 15mins |
闯关作业总共分为两个任务,两个任务均完成视作闯关成功。 请将作业发布到知乎、CSDN等任一社交媒体,将作业链接提交到以下问卷,助教老师批改后将获得 50 算力点奖励!!! 提交地址:https://aicarrier.feishu.cn/share/base/form/shrcnUqshYPt7MdtYRTRpkiOFJd
任务一
完成Leetcode 383, 笔记中提交代码与leetcode提交通过截图
任务二
使用VScode连接开发机,用任务一的代码走一遍debug的流程并做笔记
任务三(可选)
使用VScode连接开发机后使用pip install -t命令安装一个numpy到看开发机/root/myenvs目录下,并成功在一个新建的python文件中引用。
2. 任务一
完成Leetcode 383, 笔记中提交代码与leetcode提交通过截图
2.1. 提交代码与leetcode提交通过截图
2.2. 解决方案的代码
这个题目是要求判断字符串 ransomNote
是否可以由字符串 magazine
里的字符构成。每个字符在 magazine
中只能使用一次。这可以通过字符的计数来解决。
思路是使用一个字典(或者 collections.Counter
)来统计 magazine
中每个字符的出现次数,然后遍历 ransomNote
,每遇到一个字符就从字典中减少对应字符的计数,如果某个字符计数不足,说明无法构成 ransomNote
。
以下是解决方案的代码:
from collections import Counterclass Solution(object):def canConstruct(self, ransomNote, magazine):""":type ransomNote: str:type magazine: str:rtype: bool"""# 统计 magazine 中每个字符出现的次数magazine_count = Counter(magazine)# 遍历 ransomNote 中的每个字符for char in ransomNote:# 如果该字符不在 magazine_count 中或者计数为 0,返回 Falseif magazine_count[char] <= 0:return False# 减少对应字符的计数magazine_count[char] -= 1return True
1. 解释:
Counter(magazine)
:使用collections.Counter
来统计magazine
中每个字符的出现次数,返回的是一个类似字典的对象。- 遍历
ransomNote
:对ransomNote
的每个字符进行遍历,如果某个字符在magazine_count
中的值为 0,说明字符数量不足,返回False
。 - 计数减少:如果字符在
magazine
中有剩余,计数减一,继续检查下一个字符。 - 最终返回
True
:如果所有字符都能从magazine
中找到,则返回True
。
2. 示例:
# Example 1
ransomNote = "a"
magazine = "b"
sol = Solution()
print(sol.canConstruct(ransomNote, magazine)) # Output: False# Example 2
ransomNote = "aa"
magazine = "ab"
print(sol.canConstruct(ransomNote, magazine)) # Output: False# Example 3
ransomNote = "aa"
magazine = "aab"
print(sol.canConstruct(ransomNote, magazine)) # Output: True
这种方法的时间复杂度为 O(m + n),其中 m
是 magazine
的长度,n
是 ransomNote
的长度。
3.任务二
使用VScode连接开发机,用任务一的代码走一遍debug的流程并做笔记
3.1. 使用VScode连接开发机
1.打开VSCODE
2.添加SSH链接
3.VSCODE链接远程环境
3.2. 本地vscode在远程开发机上新建Leetcode383.py文件
选择文件->新建->python file新建py类型文件
3.3. Leetcode383.py代码设置断点
调用函数入口处设置断点。
3.4.准备调试Leetcode383.py函数
- ①点击“运行和调试”按钮(或Ctrl+Shift+D键命令调出“运行和调试”)
- ②点击调出的运行和调试
3.5. 运行和调试
点击单步调试或者快捷键F11(鼠标放在按钮上会显示出快捷键)
3.6. 查看函数体内变量
3.7. 打印统计结果
-
断点设置处继续点击单步调试,代码运行到下一行,继续点击单步调试,调式结束。
-
终端打印出结果。
4. 任务三(可选)
使用VScode连接开发机后使用pip install -t命令安装一个numpy到看开发机/root/myenvs目录下,并成功在一个新建的python文件中引用。
在VS Code中连接开发机并通过 pip install -t
命令将 numpy
安装到指定的路径,以下是步骤:
- 远程连接开发机:
- 在 VS Code 中,安装并打开 “Remote - SSH” 插件。
- 按
F1
打开命令面板,选择Remote-SSH: Connect to Host
并输入开发机的 SSH 地址。 - 成功连接后,VS Code 将会在开发机上打开一个新的窗口。
- 选择正确的解释器:
- 进入到开发机的 VS Code 窗口中,按
Ctrl+Shift+P
打开命令面板,选择Python: Select Interpreter
。 - 选择对应的 Python 解释器,或手动指定解释器路径,例如
./.conda/bin/python
。
- 进入到开发机的 VS Code 窗口中,按
- 安装 numpy:
- 打开 VS Code 中的终端 (`Ctrl+``)。
- 执行以下命令,将
numpy
安装到指定路径(例如/root/myenvs
):pip install numpy -t /root/myenvs
- 这会将
numpy
安装到开发机的/root/myenvs
目录下。
之前已经安装过了,没有安装过如下。
(base) root@intern-studio-40058113:~# pip install numpy -t /root/myenvs
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting numpyDownloading https://pypi.tuna.tsinghua.edu.cn/packages/23/69/538317f0d925095537745f12aced33be1570bbdc4acde49b33748669af96/numpy-2.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.3 MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 16.3/16.3 MB 68.9 MB/s eta 0:00:00
Installing collected packages: numpy
Successfully installed numpy-2.1.2
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
安装完成就会生成 /root/myenvs
目录,目录下有安装的numpy。
- 在 Python 文件中引用 numpy:
- 在开发机上新建一个 Python 文件(如
test_numpy.py
)。 - 为了让 Python 找到这个路径,需要在文件开头添加路径配置:
import sys sys.path.append('/root/myenvs') import numpy as np print(np.__version__) # 检查 numpy 是否导入成功
- 保存文件后运行,若没有报错,说明引用成功。
- 在开发机上新建一个 Python 文件(如
这样配置后,你就能在新建的 Python 文件中成功引用安装在指定目录下的 numpy
。