leetcode Reverse Integer

OpenSoucre發表於2014-03-26

Reverse digits of an integer.

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

此題主要考查幾種特殊的前導0的情況,還有單獨為0的情況

注意利用c++中的reverse時要加名稱空間,不然該函式會遞迴呼叫自己

#include <iostream>
#include <cstdio>
#include <sstream>
#include <string>
#include <cmath>

using namespace std;

int reverse(int x){
    if (x == 0) return x;
    bool flag = (x > 0)? true : false;
    x = abs(x);
    stringstream ss;
    ss << x;
    string x_str;
    ss >>x_str;
    std::reverse(x_str.begin(),x_str.end());
    string reverse_x = x_str.substr(x_str.find_first_not_of('0'));
    int res = atoi(reverse_x.c_str());
    return flag ? res : (-res);
}

int main(){
    cout<<reverse(123)<<endl;
}

 

相關文章