ARTS 2018.11.27
-
Algorithm
LeetCode 09: Palindrome-number
第一次提交:
public boolean isPalindrome(int x) {
String s = String.valueOf(x);
char[] chars = s.toCharArray();
StringBuilder stringBuilder = new StringBuilder();
for (int i = chars.length-1; i >=0 ; i--) {
stringBuilder=stringBuilder.append(chars[i]);
}
if (s.equals(stringBuilder.toString())) {
return true;
}
return false;
}
優化之後:
public boolean isPalindrome(int x) {
if(x<0) return false;
if(x<10) return true;
String s = String.valueOf(x);
char[] chars = s.toCharArray();
for (int i = 0; i < chars.length / 2; i++) {
if (s.charAt(i) != s.charAt(chars.length - 1 - i)) {
return false;
}
}
return true;
}
不轉換成字符串的解法:
class Solution {
public boolean isPalindrome(int x) {
if(x<0 || (x%10 ==0 && x!=0)) return false;
int r=0;
while(r<x){
r=r*10 + x%10;
x=x/10;
}
return r==x || x==r/10;
}
}
作者從Java語言本身的角度說明Java爲什麼被稱爲“一種安全的語言”:
- 運行時的邊界檢查。最常見的就是數組越界時拋出
ArrayIndexOutOfBoundsException
異常 - 沒有指針。在Java中不能像C/C++中顯示的聲明指針變量,Java中使用引用來指向對象,並不能對引用進行算術運算,也不能轉換成不相容的類型。
- 異常處理機制。作者以checked exception舉例說明,異常處理能提高系統的穩定性。
- 垃圾回收。自動的垃圾回收機制。
該篇只是簡單的列舉了Java作爲安全語言的幾個方面,並沒有深入的進行解析,若要深入,還需要對語言本身的機制有更多的理解。
-
Tip
工欲善其事必先利其器,推薦自己常用的IDEA插件IDEA自用插件推薦 -
Share
分享一個找單詞縮寫的英文網站 https://www.abbreviations.com/abbreviation/
我們在寫程序的過程中會經常碰到要給變量取名的問題,有時候名稱太長就可以採用縮寫,最好不要用中文拼音代替噢。
— kay