LeetCode(JavaScript实现)——回文数
文章目录
- 1、题目
- 2、题解
- 2.1、将整数转换为字符串解法
- 实现方法一
- 实现方法二:
1、题目 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121
输出: true示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
进阶:
你能不将整数转为字符串来解决这个问题吗?
题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/palindrome-number
2、题解 2.1、将整数转换为字符串解法 实现方法一
解题思路:
- 如果输入的整数 < 0,则返回 false
- 如果输入的整数 == 0,则返回 true
- 如果输入的整数 >0 且 能被 10 整除,则返回 false;
否则,把输入的整数转换为字符串 --> 转换为数组 --> 数组反转 --> 转换为字符串 --> 转换为整数,此时如果和原先的值相等则返回 true;不相等则返回 false。
/**
* @param {number} x 整数
* @param {boolean} true -- 表示输入的整数是回文数;否则为 false
*/
function isPalidrome(x)
{
if (x < 0) return false;
if (x == 0) return false;
return x % 10 == 0 ? false : x == Number(*x.toString().split('').reverse().join(''));
}
实现方法二:
解题思路:
- 把整型转换成字符串
- 使用 for 循环,比较字符串索引为 0 和 length -1 的元素是否相等?比较索引为 1 和 length - 2 的元素是否相等?…比较索引为 Math.floor(length / 2) 和 length - 1 - Math.floor(length / 2) 的元素是否相等?如果有一个比较结果不相等则返回 false,否则返回 true。
具体代码实现如下所示:
/**
* @param {number} x 整数
* @param {boolean} true -- 表示输入的整数是回文数;否则为 false
*/
function isPalidrome(x)
{
if (x < 0) return false;
if (x == 0) return true;
if (x % 10 == 0) return false;
let xStr = x.toString();
let len = Math.floor(x.xStr.length / 2);
for (let i = 0;
i < len;
++i)
{
if (xStr[i] != xStr[len - 1 - i])
return false;
}
return true;
}
推荐阅读
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- MybatisPlus使用queryWrapper如何实现复杂查询
- python学习之|python学习之 实现QQ自动发送消息
- 事件代理
- 孩子不是实现父母欲望的工具——林哈夫
- opencv|opencv C++模板匹配的简单实现
- Node.js中readline模块实现终端输入
- 【Leetcode/Python】001-Two|【Leetcode/Python】001-Two Sum
- java中如何实现重建二叉树
- leetcode|leetcode 92. 反转链表 II