我在一个展示 Google 面试问题的网站上看到了这个问题。
我不知道如何解决这个问题。
如果允许我们保留一些其他变量,那么我建议保留 2 个索引,1 个指向开头,另一个指向结尾。然后使用位变量来比较它们中的两个(通过位操作)。
但是如果我们不允许再使用任何变量,我不知道如何解决它。
最佳答案
要使 2n 位的数字成为回文,位置 i 处的每一位必须等于索引 (2n-i) 处的位。 使用异或(XOR)单个位可以很容易地进行比较: a XOR b == 1 当且仅当位 a 和 b 不相等时。 因此,当一个人以这种方式比较每一对对应的位(见上文)并通过对所有单位比较结果进行或运算来构建结果时,回文数将为 0,任何其他数字将为 1。
关于algorithm - 使用 1 位变量确定数字是否为数字回文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19745375/