任务类型 | 任务内容 | 预计耗时 |
---|---|---|
闯关任务 | Leetcode 383(笔记中提交代码与leetcode提交通过截图) | 20mins |
闯关任务 | Vscode连接InternStudio debug笔记 | 10mins |
可选任务 | pip安装到指定目录 | 10mins |
leetcode题目解析:
解题思路
- 字符统计:使用 Python 的
Counter
类统计ransomNote
和magazine
中每个字符的出现次数。
Counter(ransomNote)
会生成一个字典,记录ransomNote
中每个字符的数量。Counter(magazine)
会生成一个字典,记录magazine
中每个字符的数量。- 字符数量比较:遍历
ransomNote
中每个字符及其对应的出现次数,检查该字符在magazine
中的数量是否足够。
- 如果
magazine
中的某个字符数量小于ransomNote
中的需求,返回False
。- 如果所有字符数量都满足条件,则返回
True
。
from collections import Counter class Solution: def canConstruct(self, ransomNote: str, magazine: str) -> bool: ransom_count = Counter(ransomNote) magazine_count = Counter(magazine) for char, count in ransom_count.items(): if magazine_count[char] < count: return False return True
如何使用InternLM api
我们可以使用openai python sdk来调用InternLM api。注意在配置api key时,更推荐使用环境变量来配置以避免token泄露。
运行成功的截图如下:
对一个.py文件的debug 过程:
第一个问题apiconnectionerror,这是因为我没有将api填进去,自己把自己的api填进去就好了
第二个问题是
发生异常: JSONDecodeError,出现
JSONDecodeError
的错误提示,说明在尝试解析 JSON 数据时发生了问题。这个错误通常表示返回的内容为空,或者不是有效的 JSON 格式。后添加下面代码,查看res的输出,我们发现
print("API Response:", res)
可以看到这里多了···json的格式还有后面的一堆点点(markdown的格式原因),所以我们要删掉
# 清理字符串,移除 Markdown 标记 res = res.replace('```json\n', '') # 移除 Markdown 开始标记 res = res.replace('```', '') # 移除 Markdown 结束标记
res = internlm_gen(prompt,client) # 打印返回的内容以便调试 print("API Response:", res) # 清理字符串,移除 Markdown 标记 res = res.replace('```json\n', '') # 移除 Markdown 开始标记 res = res.replace('```', '') # 移除 Markdown 结束标记 res_json = json.loads(res) print(res_json)
成功解决!!!