所以,我正在 CodingBat 上解决这个问题
给定一个字符串,递归(无循环)计算一个新字符串,其中所有出现的“pi”都已替换为“3.14”。
更改Pi(“xpix”)→“x3.14x”
更改Pi(“pipi”)→“3.143.14”
ChangePi("pip") → "3.14p"
这是我的代码:
public String changePi(String str) {
if (str.length() < 2)
return str;
char c1 = str.charAt(0);
char c2 = str.charAt(1);
if (c1 == 'p' && c2 == 'i')
return "3.14" + changePi(str.substring(2));
return c1 + c2 + changePi(str.substring(2));
}
此代码不适用于许多测试用例,如下图所示
我无法理解我的递归代码出了什么问题以及为什么它显示这样的输出。谁能帮助我理解我做错了什么?
SMILET
沧海一幻觉
RISEBY
相关分类