首页 > 学院 > 开发设计 > 正文

Reverse Integer

2019-11-06 06:22:20
字体:
来源:转载
供稿:网友


Reverse digits of an integer.

Example1: x = 123, return 321Example2: x = -123, return -321

Note:The input is assumed to be a 32-bit signed integer. Your function shouldreturn 0 when the reversed integer overflows.

 

Solution:

class Solution {public:    int reverse(int x) {

//将int转为string     int n = x;     char c[256];     string s;     sPRintf(c, "%d", n);     s = c;   

//以string的形式设定int的边界     string a = "2147483647";     char ach[256];     strcpy(ach, a.c_str());     string b = "-2147483648";     char bch[256];     strcpy(bch, b.c_str());

//判定是否越界          if (s[0] != '-' && strcmp(c, ach) > 0 && s.size() >= a.size()) return 0;     if (s[0] == '-' && strcmp(c, bch) > 0 && s.size() >= b.size()) return 0;

//倒置string         string k = s;     if (s[0] == '-')       for (int i = 1; i < s.size(); i++) s[i] = k[s.size() - i];     else  for (int i = 0; i < s.size(); i++) s[i] = k[s.size() - 1 - i];     strcpy(c, s.c_str());

//判定是否越界          if (s[0] != '-' && strcmp(c, ach) > 0 && s.size() >= a.size()) return 0;     if (s[0] == '-' && strcmp(c, bch) > 0 && s.size() >= b.size()) return 0;    

//将string转为int并返回值     n = atoi(c);     return n;    }};


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表