zoukankan      html  css  js  c++  java
  • leetcode-7. Reverse Integer

    题目链接:https://leetcode.com/problems/reverse-integer/description/

    题目意思:

    给一个整数,要求将这个整数反转过来

    例如:

    input:123456789

    output:987654321

    input:-98765400

    output:-456789

    思路:

    1、先转换为字符串str,长度为len,然后遍历字符串,
    2、如果str[0]=="-" 从str[len-1] -- str[1] 开始反转,否则从str[len-1] -- str[0]反转
    3、遇到第一个非0的数,进行标记flag=true,如果flag==false 则丢弃,继续循环

    注意:反转后的数可能会越界

    此种做法需要了解的知识点:

    1、int型转字符串
    (1)String str = "" + i;
    (2)String str = String.valueOf(i);
    (3)String str = Integer.toString(i);
    2、String转字符串
    (1)int i = Integer.parseInt(str);
    (2)int i = Integer.valueOf(str).intValue();
    3、遍历一个字符串的每一个字母
    (1)
    for(int i = 0;i<str.length();i++){
    	char ch = str.charAt(i);
    }
    (2)
    char[] chs = str.toCharArray();
    for(char ch : chs){
    	
    }
    (3)
    for(int i = 0;i<str.length();i++){
    	String sunstr = str.substring(i,i+1);
    }
    

     AC代码:

    说实话,虽然想到了反转后的int数值可能会越界,但是没想到加个try/catch就可以通过。。。。。。。

    class Solution {
        public int reverse(int x) {
            String str = "" + x;  //int转String
            String buffer = "";  //反转后的字符串
            Boolean flag = false; //判断0是否需要丢弃
            int begin = 0;   //循环开始位置(负数开始位置是1,整数是0)
            char[] chs = str.toCharArray(); //String转char
            int len = chs.length;
            if(chs[0]=='-'){
                begin = 1;
                buffer+="-";
            }
            for(int i = len-1;i>=begin; i--){
                if(chs[i]!='0'){
                    flag = true;
                }
                if(!flag) continue;
                buffer+=chs[i];
            }
            int res = 0;
            try {
                res = Integer.parseInt(buffer);
            }catch (Exception e){
                e.getMessage();
            }
            return res;
        }
    }
    

      

  • 相关阅读:
    GNU make查找makefile的顺序
    解决ssh登录过慢的问题
    大小端转换定义结构体的技巧
    git解决git apply时遇到trailing whitespace问题
    Qualcomm Atheros AR9485 无线网卡驱动问题
    tcpdump入门笔记
    Linux内核探索之路——关于书
    Ubuntu下最好用的词典Golden Dict设置支持有道
    ubuntu14.04完美安装并设置搜狗输入法
    ubuntu网络已禁用的解决方案
  • 原文地址:https://www.cnblogs.com/tonghao/p/9523318.html
Copyright © 2011-2022 走看看