题解 | #反转数字#

反转数字

http://www.nowcoder.com/practice/1a3de8b83d12437aa05694b90e02f47a

思路:使用to_string将int转为string,再利用stringstream流将string转为int,过程中要另外将符号存起来。判断是否溢出可以用更大的long long 保存结果,比较和int是否相等,不相等时溢出。

class Solution {
public:
    /**
     * 
     * @param x int整型 
     * @return int整型
     */
    int reverse(int x) {
        int sign=1;
        if(x<0) sign=-1;
        x*=sign;
        string str=to_string(x);
        ::reverse(str.begin(),str.end());
        stringstream s_stream{};
        s_stream<<str;
        int val{};
        long long int val_full{};
        s_stream>>val_full;
        val=val_full;
        val_full*=sign;
        val*=sign;
        if(val!=val_full) return 0;
        else return val;
    }
};
全部评论

相关推荐

点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务