Skip to content

Commit bc82983

Browse files
committed
feat: add the solution of Palindrome Number(009) with kotlin.
1 parent 2ad2f2a commit bc82983

File tree

4 files changed

+45
-5
lines changed

4 files changed

+45
-5
lines changed

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
| :-----------------: | ------------------------------------------------------------ | :--------------------------------------------: | :------------- |:-----------: | :---------------:|
2727
| [001][001-question] | [Two Sum][001-tips] | Array, Hash Table | [][001-java] | [][001-js] | [][001-kotlin] |
2828
| [007][007-question] | [Reverse Integer][007-tips] | Math | [][007-java] | | [][007-kotlin] |
29-
| [009][009-question] | [Palindrome Number][009-tips] | Math | [][009-java] | | |
29+
| [009][009-question] | [Palindrome Number][009-tips] | Math | [][009-java] | | [][009-kotlin] |
3030
| [013][013-question] | [Roman to Integer][013-tips] | Math, String | [][013-java] | | |
3131
| [014][014-question] | [Longest Common Prefix][014-tips] | String | [][014-java] | | |
3232
| [020][020-question] | [Valid Parentheses][020-tips] | Stack, String | [][020-java] | | |
@@ -56,7 +56,7 @@
5656
| [119][119-question] | [Pascal's Triangle II][119-tips] | Array | [][119-java] | | |
5757
| [121][121-question] | [Best Time to Buy and Sell Stock][121-tips] | Array, Dynamic Programmin | [][121-java] | | |
5858
| [122][122-question] | [Best Time to Buy and Sell Stock II][122-tips] | Array, Greedy | [][122-java] | | |
59-
| [226][226-question] | [Invert Binary Tree][226-tips] | | [][226-java] | [][226-js] | |
59+
| [226][226-question] | [Invert Binary Tree][226-tips] | Tree | [][226-java] | [][226-js] | |
6060
| [543][543-question] | [Diameter of Binary Tree][543-tips] | Tree | [][543-java] | | |
6161
| [561][561-question] | [Array Partition I][561-tips] | | | [][561-js] | |
6262
| [643][643-question] | [Maximum Average Subarray I][643-tips] | | | [][643-js] | |
@@ -449,4 +449,5 @@
449449
[001-kotlin]: ./src/_001/kotlin/Solution.kt
450450
[002-kotlin]: ./src/_002/kotlin/Solution.kt
451451
[007-kotlin]: ./src/_007/kotlin/Solution.kt
452+
[009-kotlin]: ./src/_009/kotlin/Solution.kt
452453
[771-kotlin]: ./src/_771/kotlin/Solution.kt

src/_009/kotlin/Solution.kt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package _009.kotlin
2+
3+
/**
4+
* @author relish
5+
* @since 2018/04/05
6+
*/
7+
class Solution {
8+
fun isPalindrome(x: Int): Boolean {
9+
if (x < 0) return false
10+
var x1 = x
11+
var sum = 0
12+
while (x1 > 0) {
13+
sum = sum * 10 + x1 % 10
14+
x1 /= 10
15+
}
16+
return x == sum
17+
}
18+
}
19+
20+
fun main(args: Array<String>) {
21+
println(Solution().isPalindrome(0))
22+
println(Solution().isPalindrome(-2147447412))
23+
}

tips/009/README.md

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ There is a more generic way of solving this problem.
2222
## 思路 0
2323

2424
题意是判断一个有符号整型数是否是回文,也就是逆序过来的整数和原整数相同,首先负数肯定不是,接下来我们分析一下最普通的解法,就是直接算出他的回文数,然后和给定值比较即可。
25-
25+
java:
2626
```java
2727
class Solution {
2828
public boolean isPalindrome(int x) {
@@ -36,7 +36,19 @@ class Solution {
3636
}
3737
}
3838
```
39-
39+
kotlin:
40+
```kotlin
41+
fun isPalindrome(x: Int): Boolean {
42+
if (x < 0) return false
43+
var x1 = x
44+
var sum = 0
45+
while (x1 > 0) {
46+
sum = sum * 10 + x1 % 10
47+
x1 /= 10
48+
}
49+
return x == sum
50+
}
51+
```
4052
## 思路 1
4153

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

tips/Template.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,22 +20,26 @@
2020
// 贴一些关键代码,说一些解题思路
2121
// 如果当前仅一种思路,则不需要编号
2222
// 同一种语言可以写多种思路
23-
// 与某种语言思路相同的另一种语言的思路无须赘述,但可以把代码贴在相同思路后面
23+
// 与某种语言思路相同的另一种语言的思路无须赘述,但可以把代码贴在相同思路后面
24+
java:
2425
```java
2526

2627
```
28+
javascript:
2729
```javascript
2830

2931
```
3032

3133
## 思路 2
3234
// 贴一些关键代码,说一些解题思路
35+
java:
3336
```java
3437

3538
```
3639

3740
## 思路 3
3841
// 贴一些关键代码,说一些解题思路
42+
kotlin:
3943
```kotlin
4044

4145
```

0 commit comments

Comments
 (0)