首页 > 其他分享 >每日一道leetcode:9. 回文数

每日一道leetcode:9. 回文数

时间:2023-06-15 11:06:03浏览次数:49  
标签:10 false string int 每日 121 leetcode 回文


1. 题目(简单)

题目链接

给你一个整数x,如果x是一个回文整数,返回 true ;否则,返回 false 。

回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

例如,121 是回文,而 123 不是。

示例 1:

输入:x = 121
输出:true

示例 2:

输入:x = -121
输出:false
解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。

示例 3:

输入:x = 10
输出:false
解释:从右向左读, 为 01 。因此它不是一个回文数。

提示:

  • -231 <= x <= 231 - 1

进阶:你能不将整数转为字符串来解决这个问题吗?

9.2. 题解

回文的定义是按照中心轴翻转后是一致的,前有回文串的判定,那么可以将整数直接转成string,通过回文的判断翻转前后两者是一致的。

class Solution {
public:
    bool isPalindrome(int x) {
        // 转成string
        string s = to_string(x);
        string s1 = s;
        reverse(s1.begin(), s1.end());
        return s==s1;
    }
};

若是不转换成字符串,那就需要将整数中的每一个数位上的数取出,放到翻转后对应的位置上,这里需要注意的是首先对负数判定,直接判定负数为不符合的。

class Solution {
public:
    bool isPalindrome(int x) {
        if (x < 0) return false;
        long y = 0;
        int x_tmp = x;
        while (x > 0) {
            y = y*10+(x%10);
            x /= 10;
        }
        return x_tmp == y;
    }
};

注意:这里的y可能会超出int的表示范围,导致提交错误。


标签:10,false,string,int,每日,121,leetcode,回文
From: https://blog.51cto.com/u_16161414/6485314

相关文章

  • 每日一道leetcode:6. N 字形变换
    1.题目(中等)题目链接2.分析与解答思路:矩阵模拟。分为两步:向下遍历向右上遍历classSolution{public:stringconvert(strings,intnumRows){//模拟intn=s.length();if(numRows==1||numRows>=n){returns;......
  • leetcode:vim模式下esc代码区失焦问题
    问题刷力扣时用的vim模式编码,当按下esc退出插入模式的时候,发现编辑的焦点直接从代码区退出了,还想继续往下敲代码就只能再次点鼠标原因浏览器使用了插件vimium,所以导致这个问题的出现。参考这里解决把插件设置力扣网站禁用就行,如果不想麻烦的关闭vimium插件的话。直接添加如......
  • 算法题总结-最长回文序列
    原题https://www.nowcoder.com/practice/3cd4621963e8454594f00199f4536bb1?tpId=37&tqId=21255&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2Fta%3Fdifficulty%3D3%26page%3D1%26pageSize%3D50%26search%3D%26tpId%3D37%26type%3D37&am......
  • #yyds干货盘点# LeetCode程序员面试金典:分割回文串
    题目:给你一个字符串s,请你将s分割成一些子串,使每个子串都是回文串。返回s所有可能的分割方案。回文串是正着读和反着读都一样的字符串。 示例1:输入:s="aab"输出:[["a","a","b"],["aa","b"]]示例2:输入:s="a"输出:[["a"]]代码实现:classSolution{bo......
  • 【LeetCode双指针】合并两个有序数组,从后向前遍历
    合并两个有序数组https://leetcode.cn/problems/merge-sorted-array/给你两个按非递减顺序排列的整数数组nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目。请你合并nums2到nums1中,使合并后的数组同样按非递减顺序排列。注意:最终,合并后数......
  • 【每日一题】Problem 174B. File List
    原题解决思路纯模拟,比较文件名长度是否合规,文件格式+下一个文件名长度是否合规误区文件名的长度要和文件格式+下一个文件名的长度分开判断更新左端点和每次迭代开始先判断的方式解决该问题最后一个'.'后的文件格式需要特殊处理在循环结束后与'.'不存在的情况共同......
  • 每日一道leetcode:4. 寻找两个正序数组的中位数
    1.题目(困难)题目链接给定两个大小分别为m和n的正序(从小到大)数组nums1和nums2。请你找出并返回这两个正序数组的中位数。算法的时间复杂度应该为O(log(m+n))。示例1:输入:nums1=[1,3],nums2=[2]输出:2.00000解释:合并数组=[1,2,3],中位数2示例2:输入:nums1=[1,2],nu......
  • 每日一道leetcode:5. 最长回文子串
    1.题目(中等)题目链接给你一个字符串s,找到s中最长的回文子串。如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。示例1:输入:s=“babad”输出:“bab”解释:“aba”同样是符合题意的答案。示例2:输入:s=“cbbd”输出:“bb”提示:1<=s.length<=1000s仅由数字和英文......
  • Leetcode
    1.两数之和题目链接:1.两数之和-力扣(LeetCode)给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意......
  • 2023.6.14每日一题
    B.Garland-1800原题链接CodeforcesRound612(Div.1)ACodeforcesRound612(Div.2)C题目大意给定一个被删去字符的\(1\simn\)排列,现在需要将空缺位置填入缺失的数,使得最终得到的序列仍是一个\(1\simn\)的排列,问所有填法中,相邻两项的奇偶性不同的数对数量最小......