Skip to content

Commit b9573a6

Browse files
committed
feat: add solution of Palindrome Number(009) with javascript
1 parent 61e41ef commit b9573a6

File tree

3 files changed

+59
-1
lines changed

3 files changed

+59
-1
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
| :-----------------: | ------------------------------------------------------------ | :------------: |:-----------: | :-------------: |
2727
| [001][001-question] | [Two Sum][001-tips] | [][001-java] | [][001-js] | [][001-kotlin] |
2828
| [007][007-question] | [Reverse Integer][007-tips] | [][007-java] | [][007-js] | [][007-kotlin] |
29-
| [009][009-question] | [Palindrome Number][009-tips] | [][009-java] | | [][009-kotlin] |
29+
| [009][009-question] | [Palindrome Number][009-tips] | [][009-java] | [][009-js] | [][009-kotlin] |
3030
| [013][013-question] | [Roman to Integer][013-tips] | [][013-java] | | [][013-kotlin] |
3131
| [014][014-question] | [Longest Common Prefix][014-tips] | [][014-java] | | [][014-kotlin] |
3232
| [020][020-question] | [Valid Parentheses][020-tips] | [][020-java] | | |
@@ -344,6 +344,7 @@
344344

345345
[001-js]: ./src/_001/Solution.js
346346
[007-js]: ./src/_007/Solution.js
347+
[009-js]: ./src/_009/Solution.js
347348
[226-js]: ./src/_226/Solution.js
348349
[561-js]: ./src/_561/Solution.js
349350
[643-js]: ./src/_643/Solution.js

src/_009/Solution.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/**
2+
* @param {number} x
3+
* @return {boolean}
4+
*/
5+
var reverse = function(x) {
6+
var reverse = 0
7+
var arr = String(x).split('')
8+
if (x >= 0) {
9+
return Number(arr.reverse().join(''))
10+
} else {
11+
return -Number(arr.slice(1,arr.length).reverse().join(''))
12+
}
13+
if (reverse >= 0x7fffffff ||reverse < -0x80000000) {
14+
reverse = 0
15+
}
16+
return reverse
17+
};
18+
var isPalindrome = function(x) {
19+
if (x < 0 ) {
20+
return false
21+
}
22+
if (reverse(x) === x) {
23+
return true
24+
} else {
25+
return false
26+
}
27+
};

tips/009/README.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,36 @@ fun isPalindrome(x: Int): Boolean {
4949
return x == sum
5050
}
5151
```
52+
javascript:
53+
```javascript
54+
/**
55+
* @param {number} x
56+
* @return {boolean}
57+
*/
58+
var reverse = function(x) {
59+
var reverse = 0
60+
var arr = String(x).split('')
61+
if (x >= 0) {
62+
return Number(arr.reverse().join(''))
63+
} else {
64+
return -Number(arr.slice(1,arr.length).reverse().join(''))
65+
}
66+
if (reverse >= 0x7fffffff ||reverse < -0x80000000) {
67+
reverse = 0
68+
}
69+
return reverse
70+
};
71+
var isPalindrome = function(x) {
72+
if (x < 0 ) {
73+
return false
74+
}
75+
if (reverse(x) === x) {
76+
return true
77+
} else {
78+
return false
79+
}
80+
};
81+
```
5282
## 思路 1
5383

5484
好好思考下是否需要计算整个长度,比如 1234321,其实不然,我们只需要计算一半的长度即可,就是在计算过程中的那个逆序数比不断除 10 的数大就结束计算即可,但是这也带来了另一个问题,比如 10 的倍数的数 10010,它也会返回 `true`,所以我们需要对 10 的倍数的数再加个判断即可,代码如下所示。

0 commit comments

Comments
 (0)