- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我碰到一个常见的面试问题之一,就是找到最接近的回文数。假设输入为127,则输出为131,如果为125,则输出为121。
我可以提出逻辑,但是在某些情况下,例如91、911,我的逻辑会失败。在这些输入中,它的值为99、919,但正确的输出是88和909。
算法步骤为:
最佳答案
这实际上是一个有趣的问题。显然,要使这不仅仅是暴力破解,您要做的就是使用最高有效的数字并将其放在最低有效的数字位置以形成回文。 (我将回文和原始之间的差异称为“距离”)
从这开始,我要说的是,我们可以忽略数字中最低的一半,因为这实际上并不重要(确定距离时很重要,但这仅是全部)。
我将使用一个抽象数字:ABCDEF
。其中A,B,C,D,E,F均为随机数字。再次如我所说,确定回文不需要D,E,F,因为我们想要的是将数字的前半部分镜像到后半部分。显然,我们不想这样做,否则我们将修改更多的有效数字,导致与原始数字的距离更大。
因此,回文应为ABCCBA
,但是正如您已经说过的那样,这并不总是最短的距离。但是,“解决方案”的形式仍然是XYZZYX
,因此,如果我们考虑最小化我们要修改的数字的“显着性”,这意味着我们想修改C(或中间的数字)。
让我们退后一步,看看原因:ABCCBA
A
,因为它位于最不重要的位置:最右边。但是,为了修改最低有效位,我们需要修改最高有效位。所以A
了。 B
也可以这样说,因此C
最终成为我们的选择。 C
以获得可能更接近的数字,我们需要考虑边界。
ABCDEF
是我们的原始号码,如果
ABCCBA
不是最接近的回文,那可能是什么?基于上面的小弯路,我们可以通过修改
C
来找到它。因此,有两种情况,
ABCDEF
大于
ABCCBA
或小于
ABCCBA
。
ABCDEF
大于
ABCCBA
,则将1加到
C
。我们将说
T = C+1
,所以现在我们有了一个数字
ABTTBA
。因此,我们将进行测试以确保
ABCDEF - ABCCBA > ABCDEF - ABTTBA
如果是这样,我们知道
ABTTBA
是最近的回文。随着对C的更多修改,只会使我们越来越遥远。
ABCDEF
小于
ABCCBA
,那么我们将从
C
中减去1。假设
V = C-1
。因此,我们有了
ABVVBA
,就像上面我们将测试的:
ABCDEF - ABCCBA > ABCDEF - ABVVBA
,您将拥有相同的解决方案。
ABCDEF
总是介于
ABTTBA
和
ABVVBA
之间,而这些数字之间的唯一其他回文是
ABCCBA
。因此,您只有3个解决方案。如果将
ABCDEF
与
ABCCBA
比较,则只需检查2。
ABCBA
,
ABVBA
和
ABTBA
等等。
911 - 919
和911 - 909
关于c++ - 最近回文数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18988514/
我正在编写 Java 代码,我必须在其中创建一个返回带有一个参数的 boolean 值的方法。如果提供给它的数字(参数)是否为回文,代码必须识别真假。这是我的代码,但结果始终是错误的。有人可以确定这里
我必须判断一个整数是否是JAVA中的回文数。我需要帮助理解为什么我编写的代码返回 Time Limit Exceeded? class Solution { public boolean is
这是工作代码: p = (10..14).map { |a| (a..14).map { |b| a * b } flatten.select { |p| p.to_s == p.
可计算任意位水仙花数 复制代码代码如下: public static void main(String[] args) { int max
题目:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数 是指正序(
1.题目描述: 难度:简单 描述: 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 例如,1
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 已关闭 7 年前。 Improve
谁能帮我这个c程序。我正在尝试执行这个回文检查代码,但在我输入数字后它没有被执行。有什么错误吗? #include int main() { int num,rev=0,r,temp;
本文关键词:回文数,回文,题解,Leetcode, 力扣,Python, C++, Java 题目地址:https://leetcode.com/problems/palindrome-number
9. 回文数 题目描述 解题思路 首先将整数x转换为字符串型x_str; 遍历x_str.length()/2次,比较第 i 位与倒数第 i 位字符是否相同,如果不同返回false; 遍历结束,返回t
我是一名优秀的程序员,十分优秀!