LeetCode #7 简单题(反转整数)

题目:翻转整数  123 -> 321,-123 -> -321

题解: long long 存一下好了,注意溢出返回0就行了

class Solution {
public:
    int reverse(int x) {
        long long orix = x;
        long long rev = 0;
        bool isLess0 = orix < 0;
        orix = orix < 0 ? -1 * orix : orix;
        while(orix != 0){
            rev = rev * 10 + (orix % 10);
            orix /= 10;
        }
        if (isLess0){
            rev *= -1;
        }
        long long minm = (-1) * (1 << 31);
        long long maxm = (1 << 31) - 1;
        if (rev < minm || rev > maxm){
            return 0;
        }else{
            return rev;
        }
    }
};

原文地址:https://www.cnblogs.com/error408/p/11610361.html

时间: 2024-07-30 09:17:16

LeetCode #7 简单题(反转整数)的相关文章

LeetCode #1 简单题

题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 题解:简单题,没啥可说的,不想 n2 复杂度搞,map存一下logn吧先 1 class Solution { 2 public: 3 vector<int> twoSum(vector<int>& nums, int target) { 4 std::map<int, int> numMap; 5 vector<int>

【leetcode 简单】第二题 反转整数

给定一个 32 位有符号整数,将整数中的数字进行反转. 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假设我们的环境只能存储 32 位有符号整数,其数值范围是 [?231,  231 ? 1].根据这个假设,如果反转后的整数溢出,则返回 0. class Solution(object): def reverse(self, x): """ :type x: int :rtype:

【leetcode算法-简单】7.整数反转

[题目描述] 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123输出: 321 示例 2: 输入: -123输出: -321 示例 3: 输入: 120输出: 21注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,  231 − 1].请根据这个假设,如果反转后整数溢出那么就返回 0. 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-inte

每日一题之LeetCode 栈简单题集合496,682,232,225,155,844,20

496 下一个最大的元素方法1 :自己瞎写的 没有考虑到栈的特性class Solution:def nextGreaterElement(self, nums1, nums2): L=[] for i in nums1: k=nums2.index(i) lenth2=len(nums2) if k==lenth2-1: L.append(-1) for j in range(k+1,lenth2): if nums2[j]>i: L.append(nums2[j]) break if j==

[leetcode]7. Reverse Integer反转整数

Given a 32-bit signed integer, reverse digits of an integer. Example 1: Input: 123 Output: 321 Example 2: Input: -123 Output: -321 Example 3: Input: 120 Output: 21 题意: 给定一个10进制整数,翻转它. Solution1: directly do the simulation. Two tricky parts to be hand

leetCode #2 简单题

题目:给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储一位数字.如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和.您可以假设除了数字 0 之外,这两个数都不会以 0 开头. 题解:就指向两个链表的头的指针依次向后遍历.算和的余数,记录一下进位.如果L1先遍历到末尾的话,就把L1最后一个指针指向L2当前的next,即把L2剩余的部分接在L1的结尾.这样可以节省不少开辟新Node的空间,然后继续用进位和L1当前N

LeetCode #6 简单题(小模拟)

题目: 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列.然后横向输出.LeetCode上有几个样例可以看看. 题解:模拟一下就好了- -,对原字符串s排列完后,横向每个添加到ans中去就行了 class Solution { public: string convert(string s, int numRows) { if (numRows == 1) return s; int len = (int)s.size(), gridSize = numRows * 2 -

LeetCode #3 简单题

题目: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 题解: i j 分别记录目标字符串的左右边界.对当前字符 x,如果前面出现过,则更新左边界为上次出现位置的下一个,然后更新当前字符 x 的位置,遍历过程中记录一下 j - i + 1的最大值就好了. class Solution { public: int lengthOfLongestSubstring(string s) { int ans = 0; int len = s.size(); std::map<int,

LeetCode #5 简单题

题目:求最长回文子串 题解:manacher算法,百度一堆讲解- -,我也不说了,想知道啥的自己百度去吧 class Solution { public: string longestPalindrome(string s) { string manaStr = "$#"; for (int i=0;i<s.size();i++){ manaStr += s[i]; manaStr += '#'; } vector<int> rd(manaStr.size(), 0)