Java 如何确定字符串是否为算术级数(AP)

Java 如何确定字符串是否为算术级数(AP),java,string,Java,String,我的字符串是“2358132235”。我需要知道这是否是字符串数字正在进行算术级数。我可以一直做到8,但当我13岁时,我不知道如何处理这里的多位数。有人能帮忙吗。谢谢 私有静态布尔arthmetic(字符串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' ;

我的字符串是“2358132235”。我需要知道这是否是字符串数字正在进行算术级数。我可以一直做到8,但当我13岁时,我不知道如何处理这里的多位数。有人能帮忙吗。谢谢

私有静态布尔arthmetic(字符串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;

    }
for(i=0;我检查它是否符合预期的进度

一旦决定了前两个数字是什么(在您的示例中是2和3,但值得注意的是它是不明确的,您可以从1001和1002中得到一个前进字符串“1001100210310041005”,或者从1和22中得到一个“1224364”),用该级数生成一个足够长的字符串,它应该是什么样的,然后将其与给定的字符串进行比较。

要解决这个问题,您需要编写一个解析器,检查每个可能的子字符串是否可以是级数。我们假设级数始终为正

让我们通过使用引用字符串“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

算术级数不再有可能使用子字符串。因此,此字符串不是算术级数。您的解析器也可以对较长的引用字符串应用相同的逻辑。

您需要编写一个基本的解析器,它知道如果下一个数字不能满足要求,如何向前看TimBiegeleisen如何做到这一点。你能详细说明一下吗code@PalkiDutta-抱歉,但不鼓励让这里的人为您编写代码。@Stepehen C抱歉,我指的是示例。我错写了代码