刷题之路(九)--判断数字是否回文

Palindrome Number

问题简介:判断输入数字是否是回文,不是返回0,负数返回0

举例:

1:

输入: 121

输出: true

2:

输入: -121

输出: false

解释: 回文为121-,所以负数都不符合

3:

输入: 10

输出: false

解释: 倒序为01,不符合要求

解法一:这道题比较简单,先判断一下,负数返回0,正数可以通过转换为字符串,通过方法反转,再比较两字符串

解法二:Revert half of the number

将一个数字分为前后两部分,通过判断数字的后半段,与前半段比较是否符合回文条件,例如,如果输入是1221,如果我们可以将数字“1221”的后半部分从“21”变为“12”,即满足回文条件.

对于1221,做1221%10,得到最后一位数1,得到第二位到最后一位数,我们需要从1221删除最后一位数,我们可以将它除以10,1221 / 10 = 122.然后我们可以通过模数10,122%10 = 2再次得到最后一位数,如果我们将最后一位数乘以10并加上第二位数,1 * 10 + 2 = 12,它给出我们想要的转换的数字

小白刷题之路,请多指教— — 要么大器晚成,要么石沉大海

原文地址:https://www.cnblogs.com/lalalaczq/p/10705371.html

时间: 2024-10-10 20:08:06

刷题之路(九)--判断数字是否回文的相关文章

刷题之路(八)求字符串中的符合要求的数字

简介:String to Integer (atoi)—实现将字符串转换为整数的atoi 问题详解:给定一个字符串str,在该函数中首先丢弃所需数量的空白字符,直到找到第一个非空白字符’ ',然后,从该字符开始,采用可选的初始加号或减号,后跟尽可能多的数字,并将它们转换为数值. 其他非数字字符串可以包含在形成整数之后的其他字符,这些字符将被忽略,如果str中的第一个非空白字符序列不是有效的整数,或者由于str是空的或者只包含空格字符而不存在这样的序列,则返回零值 超出-2^31 ~ 2^31-1

leetcode 刷题之路 70 earch Insert Position 二分查找插入位置

Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order. You may assume no duplicates in the array. Here are few examples. [1,3,5,6], 5 → 2 [1,3,5,6], 2

leetcode 刷题之路 95 N-Queens I

Follow up for N-Queens problem. Now, instead outputting board configurations, return the total number of distinct solutions. N皇后问题的变种,要求直接输出N皇后的解法数目.这道题可以在N-Queens I的基础上增加计数功能,在每求得一个成功的解时(行数为N时)使计数变量递增即可.题目不要求输出具体的解法,因此可以做一点优化,使用position数组用来表示皇后的位置,p

leetcode 刷题之路 66 Path Sum II

Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum. For example: Given the below binary tree and sum = 22, 5 / 4 8 / / 11 13 4 / \ / 7 2 5 1 return [ [5,4,11,2], [5,8,4,5] ] 给定一个二叉树和数字sum,输出二叉树中从根节点到

leetcode 刷题之路 77 Permutations II

Given a collection of numbers that might contain duplicates, return all possible unique permutations. For example, [1,1,2] have the following unique permutations: [1,1,2], [1,2,1], and [2,1,1]. Permutations 的升级版,依旧是全排列问题,但是序列中可能会出现重复数字. 思路:采用字典序的非递归方

leetcode 刷题之路 78 Binary Tree Postorder Traversal

Given a binary tree, return the postorder traversal of its nodes' values. For example: Given binary tree {1,#,2,3}, 1 2 / 3 return [3,2,1]. Note: Recursive solution is trivial, could you do it iteratively? 非递归方式实现二叉树的后序遍历. 思路:使用栈辅助实现,首先将根节点入栈,然后以栈是否为

leetcode 刷题之路 83 Maximum Subarray

Find the contiguous subarray within an array (containing at least one number) which has the largest sum. For example, given the array [?2,1,?3,4,?1,2,1,?5,4], the contiguous subarray [4,?1,2,1] has the largest sum = 6. 输入一个整形数组,数组里有正数也有负数,求所有子数组的和的最大

leetcode 刷题之路 86 Remove Element

Given an array and a value, remove all instances of that value in place and return the new length. The order of elements can be changed. It doesn't matter what you leave beyond the new length. 给定一个数组和一个数字,删除数组中相同的数字并返回数组的新长度. 这道题解法很多,第一种,每删除一个数字都将后面的

刷题之路第四题--取两个顺序数组的数值的中位数

Median of Two Sorted Arrays 简介:取两个顺序数组的数值的中位数 问题详解: 给定两个排序的数组nums1和nums2分别为m和n,我们需要的是两个数组中所组成一个数列的中位数. 注意: 1.需要判断数组NPE 2.结果不是int 举例 1: nums1 = [1, 3] nums2 = [2] 中位数是 2.0 2: nums1 = [1, 2] nums2 = [3, 4] 中位数是 (2 + 3)/2 = 2.5 JAVA 实现方法一: 通过NPE判断后将两个数组