File tree 7 files changed +58
-1
lines changed
7 files changed +58
-1
lines changed Original file line number Diff line number Diff line change 28
28
| [ 007] [ 007-question ] | [ Reverse Integer] [ 007-tips ] | [ ✅] [ 007-java ] | [ ✅] [ 007-js ] | [ ✅] [ 007-kotlin ] |
29
29
| [ 009] [ 009-question ] | [ Palindrome Number] [ 009-tips ] | [ ✅] [ 009-java ] | | [ ✅] [ 009-kotlin ] |
30
30
| [ 013] [ 013-question ] | [ Roman to Integer] [ 013-tips ] | [ ✅] [ 013-java ] | | [ ✅] [ 013-kotlin ] |
31
- | [ 014] [ 014-question ] | [ Longest Common Prefix] [ 014-tips ] | [ ✅] [ 014-java ] | | |
31
+ | [ 014] [ 014-question ] | [ Longest Common Prefix] [ 014-tips ] | [ ✅] [ 014-java ] | | [ ✅ ] [ 014-kotlin ] |
32
32
| [ 020] [ 020-question ] | [ Valid Parentheses] [ 020-tips ] | [ ✅] [ 020-java ] | | |
33
33
| [ 021] [ 021-question ] | [ Merge Two Sorted Lists] [ 021-tips ] | [ ✅] [ 021-java ] | | |
34
34
| [ 026] [ 026-question ] | [ Remove Duplicates from Sorted Array] [ 026-tips ] | [ ✅] [ 026-java ] | | |
452
452
[ 007-kotlin ] : ./src/_007/kotlin/Solution.kt
453
453
[ 009-kotlin ] : ./src/_009/kotlin/Solution.kt
454
454
[ 013-kotlin ] : ./src/_013/kotlin/Solution.kt
455
+ [ 014-kotlin ] : ./src/_014/kotlin/Solution.kt
455
456
[ 771-kotlin ] : ./src/_771/kotlin/Solution.kt
Original file line number Diff line number Diff line change
1
+ package _014.kotlin
2
+
3
+ /* *
4
+ * @author relish
5
+ * @since 2018/04/09
6
+ */
7
+ class Solution {
8
+ fun longestCommonPrefix (strs : Array <String >): String {
9
+ if (strs.isEmpty()) return " "
10
+ var ret = " "
11
+ for (i in 0 until strs[0 ].length) {
12
+ val ch = strs[0 ][i]
13
+ for (str in strs) {
14
+ if (str.length <= i) return ret
15
+ if (ch != str[i]) return ret
16
+ }
17
+ ret + = ch
18
+ }
19
+ return ret
20
+ }
21
+ }
22
+
23
+ fun main (args : Array <String >) {
24
+ val strs = Array (5 , { " " })
25
+ strs[0 ] = " abcdefg"
26
+ strs[1 ] = " abcdfefg"
27
+ strs[2 ] = " abcdgefg"
28
+ strs[3 ] = " abcddefg"
29
+ strs[4 ] = " abce"
30
+
31
+ println (Solution ().longestCommonPrefix(strs))
32
+ }
Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ Write a function to find the longest common prefix string amongst an array of st
11
11
12
12
题意是让你从字符串数组中找出公共前缀,我的想法是找出最短的那个字符串的长度 ` minLen ` ,然后在 ` 0...minLen ` 的范围比较所有字符串,如果比较到有不同的字符,那么直接返回当前索引长度的字符串即可,否则最后返回最短的字符串即可。
13
13
14
+ java:
14
15
``` java
15
16
class Solution {
16
17
public String longestCommonPrefix (String [] strs ) {
@@ -27,6 +28,29 @@ class Solution {
27
28
}
28
29
```
29
30
31
+ 与java的解法思路大致相同, 不过少了` 找出最短的那个字符串的长度 minLen ` 这个环节。
32
+ 我直接假定字符串数组里的第一个字符串的长度是最短的,->` for (i in 0 until strs[0].length) { `
33
+ 后面在遍历时遇到长度小于等于index的字符串时,直接返回结果.->` if (str.length <= i) return ret `
34
+ (也有可能在此之前就返回了结果)。->` if (ch != str[i]) return ret `
35
+ kotlin:
36
+ ``` kotlin
37
+ class Solution {
38
+ fun longestCommonPrefix (strs : Array <String >): String {
39
+ if (strs.isEmpty()) return " "
40
+ var ret = " "
41
+ for (i in 0 until strs[0 ].length) {
42
+ val ch = strs[0 ][i]
43
+ for (str in strs) {
44
+ if (str.length <= i) return ret
45
+ if (ch != str[i]) return ret
46
+ }
47
+ ret + = ch
48
+ }
49
+ return ret
50
+ }
51
+ }
52
+ ```
53
+
30
54
31
55
## 结语
32
56
You can’t perform that action at this time.
0 commit comments