全对称日
今天是2012年12月2日,今天的日子正着读反着读都一样——20211202完全对称日。下一次要等到2030年了……
对称数在数学上称为回文数,比如101101,即从中间分两边对称的数,这是偶数位的对称。当然也存在于奇位数中的对称,即10101。
据计算,从公元纪年开始到2020年02月02日(20200202)总共有514个世界完全对称日。
判断回文数
简单介绍了一下回文数,那来说说,在计算机领域中,如何实现判断回文数呢?
刚刚介绍回文数的时候,说到正着读反着读都一样,其实也可以说正着写反着写都一样。
判断int回文数。
|
|
可以看出,这段代码的最关键的地方就在while循环中。利用十进制取余数的方式,把原来的数重新计算成一个倒过来的数,再把原来的数与倒过来的数进行比较,相等时,则为回文数。
判断String回文数(一)。
|
|
字符串判断回文数的一种方式,使用栈的方式来进行比较,把一个字符串从中间分开,把前一半的字符依次放入栈中,然后遍历后一半的字符,依次进行比较。
可以看出,这种判断方式,只适合偶数位的回文数,而奇数位的回文数,则判断不出来。
判断String回文数(二)。
|
|
直接两个指针,一个前一个后,前后指针所对应的值比较一次,相等,前指针往后挪一位,后指针往前挪一位,当两个指针彼此过界时,结束比较。
特殊符号
说了3种实现回文数判断的方式,其实都是对完全对称特别的实现。那接下来说说常见的判断左右符号对称的实现。主要的实现思路,其实是使用判断String回文数(一)的方式,使用栈这种方式来实现。