国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

LeetCode-9. Palindrome Number(回文數(shù))

2019-11-10 23:05:55
字體:
供稿:網(wǎng)友

1.題目描述

Determine whether an integer is a palindrome. Do this without extra space.

Some hints: Could negative integers be palindromes? (ie, -1)

If you are thinking of converting the integer to string, note the restriction of using extra space.

You could also try reversing an integer. However, if you have solved the PRoblem “Reverse Integer”, you know that the reversed integer might overflow. How would you handle such case?

There is a more generic way of solving this problem.

2.我的分析思路

因為之前做過數(shù)字倒序輸入的題目,所以我的想法就是算出他的倒序數(shù)字,然后進行對比。當(dāng)然,從提示中我們可以看到,一些負數(shù)什么的,是不滿足條件的。所以,我們將負數(shù)刨除在外。

簡單的代碼就不寫了,結(jié)果就是寫了之后,貼上去,結(jié)果編譯不通過,郁悶。。應(yīng)該還有其他的好的算法,哎,被虐的不要不要的。

3.其他的思路

看大家的討論內(nèi)容,思路有了一些拓展,看到了評論最多的一個方法,貼出來如下:

public static boolean isPalindrome(int x) throws Exception { if (x < 0 || (x != 0 && x % 10 == 0)) return false; int rev = 0; while (x > rev) { rev = rev * 10 + x % 10; x = x / 10; } return (x == rev || x == rev / 10); }

這個算法依舊很妙,沿用了之前數(shù)字倒序輸出的思路,但是有了一些變化。中間這一段算法的目的就是求出這個數(shù)字的后幾位數(shù)的倒序表示的數(shù)字。

比如,我們輸入的數(shù)字是1221,我們經(jīng)過中間的循環(huán),算出的rev=12,x=12,也就是算出了后面兩個數(shù)字21的倒序數(shù),就是12,與前面的12相等,符合x==rev的條件,輸出true。還有一種情況就是數(shù)字的位數(shù)為奇數(shù)位,此時求出的rev是(位數(shù)/2+1)取整的倒序數(shù)字,比如數(shù)組12321,此時rev=123,x=12,滿足條件x==rev/10的條件,同樣的也能得到true。

看了討論,真是讓我汗顏啊~~~


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 共和县| 潼南县| 呼图壁县| 奉节县| 达孜县| 兰州市| 呈贡县| 封丘县| 晋城| 高密市| 星座| 金门县| 广宁县| 襄樊市| 曲阜市| 黎平县| 登封市| 桐乡市| 当雄县| 二连浩特市| 河池市| 柯坪县| 彭州市| 曲水县| 北宁市| 雅江县| 阳原县| 方城县| 兴安县| 永福县| 枝江市| 怀柔区| 濮阳市| 文昌市| 宜昌市| 东乌珠穆沁旗| 阜南县| 定边县| 长岭县| 象州县| 英德市|