工具运用
编程解题无非三步:
首先,理解题意。
其次,按思路进行编码。
最后,进行程序debug,保证程序的正确性。
现在,豆包助手得益于其作为大语言模型的推理能力很好的帮我们极大程度上缓解了上述三大难题,大大提升了程序员开发效率。豆包AI可帮我们进行题目理解,保证解题出发点的正确性,千里之行始于足下。再者,当我们编程思维卡顿的时候,助手可以给出代码提示,有助于思维逻辑的梳理。最后,人为debug难免会出现漏洞,比如一些边界条件,此时豆包AI可以帮我们检查代码漏洞,有助于我们拓宽思维深度。下面我将以题目为例,进行深入阐述
刷题实践
题目描述:
小M获得了一个任务,需要将数字翻译成字符串。翻译规则是:0对应"a",1对应"b",依此类推直到25对应"z"。一个数字可能有多种翻译方法。小M需要一个程序来计算一个数字有多少种不同的翻译方法。
例如:数字12258可以翻译成 "bccfi", "bwfi", "bczi", "mcfi" 和 "mzi",共5种方式。
思维详解:
这里,我需要明确一下题意,并要求AI给我一些思维提示。
虽然明确了题意,但是这里我细想了想,解题思路不太明确,需要AI进一步提示一下。
代码详解:
这里他给出了动态规划解法,顺着其提示走下去,我现在进行如下编码:
public class Main {
public static int solution(int num) {
String str = String.valueOf(num);
int[] dp=new int[str.length()+1];
dp[0]=1;
dp[1]=1;
for(int i=2;i<=str.length();i++)
{
int a = str.charAt(i-2)-'0';
int b = str.charAt(i-1)-'0';
if(a*10+b>25||a*10+b<10)
{
dp[i]=dp[i-1];
}
else
{
dp[i]=dp[i-1]+dp[i-2];
}
}
return dp[str.length()];
}
public static void main(String[] args) {
// You can add more test cases here
System.out.println(solution(12258) == 5);
System.out.println(solution(1400112) == 6);
System.out.println(solution(2110101) == 10);
}
}
编码成功之后,我要求AI助手对我的代码进行检查,以防逻辑bug。
很好!助手说我的代码没问题,现在进行提交。
这里我的代码比较完善,AI并没有体现出其纠错能力,下面我将dp[0]改为0,让AI纠错。
这里AI对我的代码给出了建议,很明显,他成功进行了思维辨析并改正了错误,编程能力可谓十分强大。
总结
豆包MarsCode AI在我的刷题过程中给了我很大的帮助,千里之行始于足下,解题第一步就是读懂题,AI助手很好的为我明晰了题目要义。并且在解题过程中,AI助手也可以为我实时分析代码逻辑与漏洞,以防编程过程中的逻辑模糊现象,大大提升了解题效率。这里建议其他码友在题意不明时询问豆包AI,让其进行读题,明确题意。代码编程卡顿时借助AI对现有代码进行逻辑分析,获取接下来的解题思路,可有效提升效率,但要注意AI不是万能的,不能全部照抄,要融入自己的理解,才能获得最精确的题解。同时,如果发现代码于某些样例存在问题,可询问豆包AI当前代码是否存在边界问题没有考虑到。