随着人工智能技术的快速发展,越来越多的学习工具开始融入AI元素,特别是在刷题和编程练习中,AI不仅能够提供智能解题方案,帮助我们更加高效地掌握知识。本文将通过一个具体的编程题目,展示AI在刷题过程中的优势。
简单的AI辅助刷题使用
在刷题对于题目没有思路的时候,我们可以让AI给我们一点思路的提示,例如对于题目320:
我们就可以直接询问AI,让它给我们一些思路的提示,这是MarsCodeAI给我的回答,这是主要的部分
当然还是会有一定的失误的。比如回答的算法步骤中,AI知道需要创建一个字典来计数,但并没有记住位置,所以我们应该要创建的是字典数组,利用下标同时记录前n个位置中出现的元音计数,而非单纯的字典,而AI在第三点其实也知道要计算左侧和右侧的元音。
不过虽然有一定的错误,但更重要的是他确实能提供一定的思路给我们,让我们来解答。接下来让我们依据这个思路解答并补全有bug的部分
附上完整解题的代码
def solution(s: str) -> int:
# write code here
#位置:[{元音:元音数}]
yuan_yin=[]
count={'i':0,'a':0,'e':0,'o':0,'u':0}
keys='aoeiu'
fu_yin={}
for i,e in enumerate(s):
if i>0:
yuan_yin.append(yuan_yin[i-1].copy())
else:
yuan_yin.append(count.copy())
if e in keys:
yuan_yin[i][e]+=1
else:
if e not in fu_yin:
fu_yin[e]=[i]
else:
fu_yin[e].append(i)
result=0
for i in fu_yin.items():
if len(i[1])<2:
continue
else:
for j in range(len(i[1])):
for k in range(j+1,len(i[1])):
yuan_yin_qian=yuan_yin[i[1][j]]
yuan_yin_hou={key: yuan_yin[len(s)-1].get(key, 0) - yuan_yin[i[1][k]].get(key, 0) for key in keys}
for l in keys:
result+=yuan_yin_qian[l]*yuan_yin_hou[l]
return result
相关解释
创建辅音字典存放辅音出现的位置,元音字典数组记录前n个相应元音出现的次数,然后遍历字符串进行记录。之后遍历辅音字典,对出现超过两次,从中选两个的将前一个辅音之前和后一个辅音之后的相同元音的出现次数相乘即可,本质上是从前n个元音中选一个,及后一个元音中选一个的组合数。
我们还可以在完成后让它来帮我们检查一下代码,给我们改进建议
就是也要有自己的思考,因为也可能是错的
总结
在刷题的时候,如果没有思路能够解题,那么我们可以用用AI工具,虽然可能有错误的地方,但可以为我们提供一种思路来打开我们的思路,让我们能够有想法解出题目。