zoukankan      html  css  js  c++  java
  • 【LeetCode】007 Reverse Interger

    题目:LeetCode 007 Reverse Interger

    题意:将一个整数的数字反转。保留正负符号。

    思路:先将整数变成字符串,然后判断是否为负数,或是否含有’+’,然后从字符串末尾开始累计得到新整数即可。

    但是还会有特殊情况,即正向为Int范围内,但反转之后会溢出,因此要进行特判。

    代码如下:

     1 class Solution {
     2 public:
     3     int reverse(int x) {
     4         int len, flag = 1, i = 0;
     5         long long ans = 0;
     6         string s = to_string(x);
     7 
     8         len = s.size();
     9         len--;
    10         if(s[i] == '-')
    11         {
    12             flag = -1;
    13             i++;
    14         }
    15         // else if(s[i] == '+') i++;
    16 
    17         while(len >= i)
    18         {
    19             ans *= 10;
    20             ans += s[len--]-'0';
    21         }
    22         ans *= flag;
    23         //cout << ans << endl;
    24         // 返回值根据预设的函数类型自动变,Longlong也会自动按int溢出处理
    25         if(ans > INT_MAX || ans < INT_MIN) return 0;
    26         return ans;
    27     }
    28 };
  • 相关阅读:
    fibnacci数列递归实现
    求最大公约数伪代码
    第五周学习总结
    第四周学习总结
    我的黑客偶像
    BASE64编码
    第三周学习总结
    第二周学习总结
    Python gui
    SSH实践
  • 原文地址:https://www.cnblogs.com/kathyrine/p/4466973.html
Copyright © 2011-2022 走看看