当前位置:   article > 正文

C++ leetcode 7. 整数反转 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。_给定32位符号整数 按位反转 c++

给定32位符号整数 按位反转 c++

一、思路

         转化成string, 有负号先去掉负号,然后从string的尾部开始遍历,每一个字符放到第一个另一个字符串中去。

  1. int reverse(int x) {
  2. if (x == 0)
  3. return 0;
  4. bool isPositive = x > 0 ? true : false;
  5. string xStr = to_string(x);
  6. if (!isPositive)
  7. xStr = xStr.substr(1, xStr.size() - 1);
  8. string res;
  9. bool isTailZeroEnd = false;
  10. for (int i = xStr.size() - 1; i >= 0; i--) {
  11. if (xStr[i] != '0') {
  12. res.push_back(xStr[i]);
  13. isTailZeroEnd = true;
  14. }
  15. else if (!isTailZeroEnd&&xStr[i] == 0)
  16. continue;
  17. else
  18. res.push_back(xStr[i]);
  19. }
  20. if (res.size() == 10 && res >= to_string(INT_MAX)) {
  21. return 0;
  22. }
  23. return (isPositive ? 1 : -1)*stoi(res);
  24. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/算法构造者2/article/detail/60489
推荐阅读
相关标签
  

闽ICP备14008679号