第三周LeetCode

来源:互联网 发布:mac 清理系统垃圾 编辑:程序博客网 时间:2024/05/29 04:29

题目 Easy
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
click to show spoilers.Note:
The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows.

实现思路
先把输入的int型通过stringstream转成string,然后每位每位地读出来反向赋值到另一个等长的string,再把这个string通过stringstream转成int,就可以得到答案。当输入的数字是负数时要另外处理。

实现代码

int reverse(int x) {        long long answer = 0;        // 用于int和string类型的互相转换        stringstream ss1,ss2;        ss1 << x;        string str, ans_temp;        ss1 >> str;        int len = str.length();        ans_temp = str;        if (str[0] == '-') ans_temp[0] = '-';        else ans_temp[0] = str[len-1];        for (int i = 1; i < str.length(); i++) {                if (str[0] == '-')  ans_temp[i] = str[len-i];                else ans_temp[i] = str[len-i-1];        }        ss2 << ans_temp;        ss2 >> answer;        //如果溢出就返回0        //此处头文件要include<limits.h>        if (answer>INT_MAX || answer <INT_MIN) return 0;        else return answer;    }