📅  最后修改于: 2023-12-03 15:13:43.249000             🧑  作者: Mango
本次面试是一道编码问题,面试官给了一段非常简单的递归函数代码,让我找出其中的错误并进行修改。
以下为原始的代码,实现的功能是将一个字符串翻转输出。
public class ReverseString {
public static String reverse(String str) {
if (str.length() == 1) {
return str;
}
return reverse(str.substring(1)) + str.charAt(0);
}
}
在复习了递归的工作原理之后,我很快就看出了问题:因为递归方法的返回值类型是字符串,所以递归函数中的str.charAt(0)
应该被转换为字符串类型。修改后的代码如下所示:
public class ReverseString {
public static String reverse(String str) {
if (str.length() == 1) {
return str;
}
return reverse(str.substring(1)) + String.valueOf(str.charAt(0));
}
}
在修改后的代码中,我使用了String.valueOf()
方法将字符类型转换为字符串类型。
虽然这道题并不算很难,但是这次面试给了我很好的思考机会。同时,我也意识到了,即使是非常简单的代码,一个小小的错误也有可能导致程序崩溃。因此,我会在以后的日常工作中更加仔细地审查自己的代码,避免潜在的错误。