leetcode刷题日记——反转整数

给定一个 32 位有符号整数,将整数中的数字进行反转。

这里考虑,交换时,需要注意位数不同,需要乘上对应的位数,代码如下:

int reverse(int x)
{
    int result = 0;

    while(x != 0)
    {
        int tmp = result * 10 + x % 10;    //转换的中间值
        x = x / 10;                                 //每循环一次,x位数减少一位
        if(tmp / 10 != result)                 //验证数据是否正确
        {
            result = 0;
            break;
        }
        result = tmp;
    }

    return result;
}

原文地址:http://blog.51cto.com/12876518/2106753

时间: 2024-11-06 10:01:30

leetcode刷题日记——反转整数的相关文章

LeetCode刷题-007反转整数

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

2018.9.30 LeetCode 刷题日记 第16题

第 16 题  最接近目标数的三数之和 对一个数组来说,找出其中的三个数,使得三数之和与target最接近,最先想到的是暴力法求解,对i = 0; j = i+ 1; k = j+1;进行三重遍历,记录对target距离的最小值,但是三重循环,时间复杂度0(n3). 改进 : 对寻求目标数来说,三数之和要么比target 大 ,要么比target小,确定寻找方向很重要,可以对数组进行先排序,再找寻正确组合 首先,排序好的数组可以从两侧向中间逼近,最小数和最大数加和,如果和比target大,可以从

2018.10.02 LeetCode 刷题日记 第17题

手机小键盘 2-9 数字键上有分别对应的字母,输入一串数字,如234,则 2-abc,3-def,4-ghi,按顺序每个数字选择一个字母,输出全部的字母组合 从第一个数的第一个字母开始,向下找数,每种情况结束后进行回溯 读入 23 2- abc 选a 读3 - def 选d .选 e .选f 此时再进行回溯方法,索引已经超过范围,第一次结束 2中选b  依次进行回溯 回溯方法总结: 确定函数结束条件 依次往下找,知道触碰结束,回到上层,重新开始 代码如下: class Solution { pu

【leetcode刷题笔记】Sum Root to Leaf Numbers

Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number. An example is the root-to-leaf path 1->2->3 which represents the number 123. Find the total sum of all root-to-leaf numbers. For example, 1 / 2 3 T

【leetcode刷题笔记】Multiply Strings

Given two numbers represented as strings, return multiplication of the numbers as a string. Note: The numbers can be arbitrarily large and are non-negative. 题解:就是让实现一个大整数乘法. 假设两个数num1和num2的长度分别是len1和len2,那么最后得到的答案,在最高位有进位的时候,就是len1+len2位,否则是len1+len2

【leetcode刷题笔记】String to Integer (atoi)

Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input cases. Notes: It is intended for this problem to be spe

【leetcode刷题笔记】Linked List Cycle II

Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Follow up:Can you solve it without using extra space? 判断一个链表是否有环. 题解: 设置两个指针p1和p2: p1每次走一步,p2每次走两步,如果在这个过程中,p2为空,则没有环:否则两个指针必然相遇,则有环: 接下来找环的起点,将p1挪动到链表起始,

【leetcode刷题笔记】Reverse Nodes in k-Group

Given a linked list, reverse the nodes of a linked list k at a time and return its modified list. If the number of nodes is not a multiple of k then left-out nodes in the end should remain as it is. You may not alter the values in the nodes, only nod

【leetcode刷题笔记】Reverse Linked List II

Reverse a linked list from position m to n. Do it in-place and in one-pass. For example:Given 1->2->3->4->5->NULL, m = 2 and n = 4, return 1->4->3->2->5->NULL. Note:Given m, n satisfy the following condition:1 ≤ m ≤ n ≤ lengt