iT邦幫忙

1

老肝哥-菜鳥Java的LeetCode歷程,第九題:Palindrome Number,朝遠大目標前進!

您最親愛的老肝哥又又上線了!

至於為什麼是又又呢?因為老肝哥剛剛文章打文很開心呢,結果

忘記送出文章就關掉了,懶受

懶惰如老肝哥,一天當然發一篇,意思意思一下就好,
孰不知,這題看著看著就解出來了,一次就過
也不知道是不是慢慢習慣LeetCode做題目的模式,還怎樣
舒服!
雖然這題真的很簡單,但讓老肝哥爽一下嘛

9. Palindrome Number

題目描述為下:
Example 1:

Input: x = 121
Output: true
Example 2:

Input: x = -121
Output: false
Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.

老肝哥的理解為:如果從左邊讀到右邊跟從右邊讀到左邊相同的話,就回傳true 不同就傳false

解答如下:

class Solution {
    public boolean isPalindrome(int x) {
        
       if (x > -2147483648 || x < 2147483647) {
			StringBuffer sb = new StringBuffer();
			String tmpStr = String.valueOf(x);
			char[] ch = tmpStr.toCharArray();
			String tmpStr2 = "";

			for (int i = ch.length - 1; i >= 0; i--) {
				sb.append(ch[i]);
			}
			tmpStr2 = sb.toString();

			if (tmpStr.equals(tmpStr2)) {
				return true;
			} else {
				return false;
			}

		}
		return false;
        
    }
}

解釋如下:

由於有上一題的前車之鑑,老肝哥這次聰明的在頂部加上了int的範圍,棒棒!

先用String.valueOf(x)把input轉成字串,疑?
再用toCharArray()把字串轉成char[],疑 484...?
反著跑個forloop 用append近StringBuffer,疑 這不是跟上題一樣?
然後比較兩個字串,搞定,484很簡單呢?各位小夥伴
但這邊要注意一下使用equals去比較字串內的值,
這種低級知識點,相信大家都知道,
但總有比老肝哥爛的麻(大誤!)
還是提醒一下各位小夥伴喔


尚未有邦友留言

立即登入留言