我的字符串是“ 2358132235”。我需要确定这是否是字符串数字是否在进行算术级数运算。我可以一直执行到8点,但是当我达到13岁时,我不知道头在这里可以处理多位数字。有人帮忙。谢谢。
私人静态布尔型Arthmetic(String s){
int i = 0;
for(i = 0 ; i <s.length()-2; i++)
{
int c = s.charAt(i)-'0';
int c1 = s.charAt(i+1)-'0' ;
int c2 = s.charAt(i+2)-'0' ;
if(c + c1 != c2)
{
return false;
}
}
return true;
}
我知道此代码是错误的,因为它只能工作到8
最佳答案
为了解决这个问题,您将编写一个解析器,检查每个可能的子字符串是否可以是级数。我们假设进展总是正的。
让我们通过使用带有参考字符串“ 235813”的简单版本的示例进行演示。解析器可能会构建以下标记:["2"]
,["2", "3"]
,["2", "3", "5"]
;从5-3开始拒绝!= 3-2["2"]
,["2", "35"]
,["2", "35", "81"]
;自81-35开始拒绝!= 35-2 [注意:我们未使用["2", "35", "8"]
,因为我们假设进度始终为正数]["2"]
,["2", "358"]
;拒绝,因为其余数字的位数不能大于358
["23"]
["23", "58"]
;拒绝,因为其余数字的位数不能大于58
没有更多可能的子字符串用于算术级数。因此,此字符串不是算术级数。您的解析器还可以将相同的逻辑应用于更长的参考字符串。
关于java - 如何找出字串是否为算术级数(AP),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51461548/