回文解释

问题描述 投票:-1回答:1

“现在的问题是,我们怎么知道我们已经达到数字的一半?

由于我们将数字除以10,然后将反向数字乘以10,所以当原始数字小于反向数字时,这意味着我们已经处理了数字位数的一半。“

有人可以解释吗?!来自leetcode。谢谢!

palindrome
1个回答
0
投票

原因是由于原始给定的输入,x将减少1位数,而返回的字符串同时增加1位数。该过程一直进行到x小于或等于还原的字符串为止。因此,由于更改长度的更改,当终止时,我们大约会达到字符串的一半。

让我们访问一些带有正数的示例以了解该过程。我将(x,y)写为(原始数字,返回的字符串)。第三个示例是有意设计的,尽管它不一定是一半,但是代码仍然可以使用。

  • 第一个示例是1221,其中偶数个数字。它将从(1221,0)到(122,1)到(12,12),在这一阶段,两个术语相等,因此该过程终止,我们可以得出结论,这是一个回文。

  • 下一个示例是1223,其中偶数个数字。它将从(1223,0)到(122,3)到(12,32),在此阶段,终止条件成立,因此该过程终止,我们可以得出结论,它不是回文。

  • 现在,第三个示例为1211,则序列为(1211,0),(121,1),(12,11),(1,112),之后我们从字符串终止,并得出以下结论:它不是回文]]

  • 现在,让数字由奇数个数字组成:

    • 对于12321。它将从(12321,0)到(1232,1)到(123,12)到(12,123),此时条件破裂。然后,我们将返回的字符串除以10,最后得到(12,12),我们可以得出结论,这是回文。

  • 对于12323。它将从(12323,0)到(1232,3)到(123,32)到(12,323),此时条件中断。然后,我们将返回的字符串除以10,最后得到(12,32),可以得出结论,这是回文。

  • 对于12311。它将从(12311,0)到(1231,1)到(123,11)到(12,113),此时条件破裂。然后,我们将返回的字符串除以10,最后得到(12,11),可以得出结论,这是回文。

  • 我希望这些例子能帮助您理解这篇文章的含义。

© www.soinside.com 2019 - 2024. All rights reserved.