您最亲爱的老肝哥上线了
今天老肝哥想延续昨日热情,继续刷刷LeetCode题目,想当然尔老肝哥这种菜鸡都只能从Easy的题目解起
老肝哥看了下题目,只能以老肝哥直觉的方式解,跟网路上那些做法有很大的不同
果然菜鸡与高手之间的差距非常大啊!
虽然最後还是有解出来就是了
题目描述为下:
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後难受的看着错误提示
各位小夥伴切记呀~!
>>: 老肝哥-菜鸟Java的LeetCode历程,第九题:Palindrome Number,朝远大目标前进!
component组件之间相互发送数据,传递数据的方式是使用 props。Props代表属性,用於将...
Git 基础篇 人生不能重来,但Git可以 什麽是git ? 分散式版本控制 使用 SHA1 杂凑演...
教材网址 https://coding104.blogspot.com/2021/06/java-b...
大家~ 今天文章会也会很短Q 昨天讲了静态网站可以部署到哪里之後,今天来讲 Next.js 的专案可...
当你第一次购买 Mac 时,除了学习和适应使用之外,你还探索了击键技巧。 这时候,你需要用好软件才有...