老肝哥-菜鸟Java的LeetCode历程,第七题:Reverse Integer,朝远大目标前进!

您最亲爱的老肝哥上线了

今天老肝哥想延续昨日热情,继续刷刷LeetCode题目,想当然尔老肝哥这种菜鸡都只能从Easy的题目解起
老肝哥看了下题目,只能以老肝哥直觉的方式解,跟网路上那些做法有很大的不同
果然菜鸡与高手之间的差距非常大啊!

虽然最後还是有解出来就是了

7. Reverse Integer

题目描述为下:
Example 1:

Input: x = 123
Output: 321
Example 2:

Input: x = -123
Output: -321

老肝哥的理解为:把里面的数字对调,有负数加上负数,就这样

解答如下:

class Solution {
    public int reverse(int x) {
       
        try {
        	int tmpX = Math.abs(x);
        	String tmpStr = String.valueOf(tmpX);
        	char[] tmpC = tmpStr.toCharArray();
        	StringBuffer sb = new StringBuffer();
        
        	for(int i = (tmpC.length)-1;i>=0;i--){
        		sb.append(tmpC[i]);
        	}
        	String str=sb.toString();
        	if(x>0){
        		int num=Integer.parseInt(str);
        		x = num;
        		return x;
        	}else if(x<0) {
        		int num=Integer.parseInt(str);
        		x = -num;
        		return x;
        	}
		}catch(Exception e) {
        	return 0;
		}
		return 0;
             
    }
}

解释如下:

老肝哥没有上网查解答以前,思路就是把数字一个一个反着取出,再转成数字,那就符合题目要求,
纵然前面有0,使用 Integer.parseInt 後,这个问题也能消除

首先使用Math.abs取回绝对值(去除负值),再来使用String.valueOf把数字转成字串
字串类型内有个方法为toCharArray即取回char[],
後面跑个forloop反着append进StringBuffer内,
最後判断小於0加上『 - 』号回传,即完成题目

但真正困扰老肝哥的问题是,少了try catch区块,LeetCode会丢 9646324351 进去测试,
题目开头也有提到 『超出有符号的32位整数范围,则返回。[-231, 231 - 1]0』

超出int的范围了,老肝哥又老又肝又粗心,没注意到这行,开心的写完,submit後难受的看着错误提示

各位小夥伴切记呀~!


<<:  What is SQL?

>>:  老肝哥-菜鸟Java的LeetCode历程,第九题:Palindrome Number,朝远大目标前进!

Day08 React Props-组件属性

component组件之间相互发送数据,传递数据的方式是使用 props。Props代表属性,用於将...

自我笔记 - Git 日常使用

Git 基础篇 人生不能重来,但Git可以 什麽是git ? 分散式版本控制 使用 SHA1 杂凑演...

[Java Day12] 3.6. break & continue

教材网址 https://coding104.blogspot.com/2021/06/java-b...

#23 No-code 之旅 — Next.js 网站可以部署到哪里呢?

大家~ 今天文章会也会很短Q 昨天讲了静态网站可以部署到哪里之後,今天来讲 Next.js 的专案可...

Mac机必备--超实用软件推荐

当你第一次购买 Mac 时,除了学习和适应使用之外,你还探索了击键技巧。 这时候,你需要用好软件才有...