Skip to content

Commit af97625

Browse files
authored
Merge pull request #2556 from t3chkid/main
Adds Kotlin solution for problem #271
2 parents bcae699 + 0943622 commit af97625

File tree

2 files changed

+44
-1
lines changed

2 files changed

+44
-1
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ If you would like to have collaborator permissions on the repo to merge your own
5555
<sub>[0347 - Top K Frequent Elements](https://leetcode.com/problems/top-k-frequent-elements/)</sub> | <sub><div align='center'>[✔️](c%2F0347-top-k-frequent-elements.c)</div></sub> | <sub><div align='center'>[✔️](cpp%2F0347-top-k-frequent-elements.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0347-top-k-frequent-elements.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0347-top-k-frequent-elements.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0347-top-k-frequent-elements.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0347-top-k-frequent-elements.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0347-top-k-frequent-elements.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0347-top-k-frequent-elements.py)</div></sub> | <sub><div align='center'>[✔️](ruby%2F0347-top-k-frequent-elements.rb)</div></sub> | <sub><div align='center'>[✔️](rust%2F0347-top-k-frequent-elements.rs)</div></sub> | <sub><div align='center'>[✔️](scala%2F0347-top-k-frequent-elements.scala)</div></sub> | <sub><div align='center'>[✔️](swift%2F0347-top-k-frequent-elements.swift)</div></sub> | <sub><div align='center'>[✔️](typescript%2F0347-top-k-frequent-elements.ts)</div></sub>
5656
<sub>[0238 - Product of Array Except Self](https://leetcode.com/problems/product-of-array-except-self/)</sub> | <sub><div align='center'>[✔️](c%2F0238-product-of-array-except-self.c)</div></sub> | <sub><div align='center'>[✔️](cpp%2F0238-product-of-array-except-self.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0238-product-of-array-except-self.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0238-product-of-array-except-self.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0238-product-of-array-except-self.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0238-product-of-array-except-self.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0238-product-of-array-except-self.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0238-product-of-array-except-self.py)</div></sub> | <sub><div align='center'>[✔️](ruby%2F0238-product-of-array-except-self.rb)</div></sub> | <sub><div align='center'>[✔️](rust%2F0238-product-of-array-except-self.rs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](swift%2F0238-product-of-array-except-self.swift)</div></sub> | <sub><div align='center'>[✔️](typescript%2F0238-product-of-array-except-self.ts)</div></sub>
5757
<sub>[0036 - Valid Sudoku](https://leetcode.com/problems/valid-sudoku/)</sub> | <sub><div align='center'>[✔️](c%2F0036-valid-sudoku.c)</div></sub> | <sub><div align='center'>[✔️](cpp%2F0036-valid-sudoku.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0036-valid-sudoku.cs)</div></sub> | <sub><div align='center'>[✔️](dart%2F0036-valid-sudoku.dart)</div></sub> | <sub><div align='center'>[✔️](go%2F0036-valid-sudoku.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0036-valid-sudoku.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0036-valid-sudoku.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0036-valid-sudoku.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0036-valid-sudoku.py)</div></sub> | <sub><div align='center'>[✔️](ruby%2F0036-valid-sudoku.rb)</div></sub> | <sub><div align='center'>[✔️](rust%2F0036-valid-sudoku.rs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](typescript%2F0036-valid-sudoku.ts)</div></sub>
58-
<sub>[0271 - Encode and Decode Strings](https://leetcode.com/problems/encode-and-decode-strings/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](cpp%2F0271-encode-and-decode-strings.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0271-encode-and-decode-strings.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0271-encode-and-decode-strings.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0271-encode-and-decode-strings.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0271-encode-and-decode-strings.js)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](python%2F0271-encode-and-decode-strings.py)</div></sub> | <sub><div align='center'>[✔️](ruby%2F0271-encode-and-decode-strings.rb)</div></sub> | <sub><div align='center'>[✔️](rust%2F0271-encode-and-decode-strings.rs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](swift%2F0271-encode-and-decode-strings.swift)</div></sub> | <sub><div align='center'>[✔️](typescript%2F0271-encode-and-decode-strings.ts)</div></sub>
58+
<sub>[0271 - Encode and Decode Strings](https://leetcode.com/problems/encode-and-decode-strings/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](cpp%2F0271-encode-and-decode-strings.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0271-encode-and-decode-strings.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0271-encode-and-decode-strings.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0271-encode-and-decode-strings.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0271-encode-and-decode-strings.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0271-encode-and-decode-strings.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0271-encode-and-decode-strings.py)</div></sub> | <sub><div align='center'>[✔️](ruby%2F0271-encode-and-decode-strings.rb)</div></sub> | <sub><div align='center'>[✔️](rust%2F0271-encode-and-decode-strings.rs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](swift%2F0271-encode-and-decode-strings.swift)</div></sub> | <sub><div align='center'>[✔️](typescript%2F0271-encode-and-decode-strings.ts)</div></sub>
5959
<sub>[0128 - Longest Consecutive Sequence](https://leetcode.com/problems/longest-consecutive-sequence/)</sub> | <sub><div align='center'>[✔️](c%2F0128-longest-consecutive-sequence.c)</div></sub> | <sub><div align='center'>[✔️](cpp%2F0128-longest-consecutive-sequence.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0128-longest-consecutive-sequence.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0128-longest-consecutive-sequence.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0128-longest-consecutive-sequence.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0128-longest-consecutive-sequence.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0128-longest-consecutive-sequence.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0128-longest-consecutive-sequence.py)</div></sub> | <sub><div align='center'>[✔️](ruby%2F0128-longest-consecutive-sequence.rb)</div></sub> | <sub><div align='center'>[✔️](rust%2F0128-longest-consecutive-sequence.rs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](swift%2F0128-longest-consecutive-sequence.swift)</div></sub> | <sub><div align='center'>[✔️](typescript%2F0128-longest-consecutive-sequence.ts)</div></sub>
6060
<sub>[0075 - Sort Colors](https://leetcode.com/problems/sort-colors/)</sub> | <sub><div align='center'>[✔️](c%2F0075-sort-colors.c)</div></sub> | <sub><div align='center'>[✔️](cpp%2F0075-Sort-colors.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0075-sort-colors.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0075-sort-colors.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0075-sort-colors.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0075-sort-colors.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0075-sort-colors.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0075-sort-colors.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](rust%2F0075-sort-colors.rs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](swift%2F0075-sort-colors.swift)</div></sub> | <sub><div align='center'>[✔️](typescript%2F0075-sort-colors.ts)</div></sub>
6161
<sub>[0535 - Encode and Decode TinyURL](https://leetcode.com/problems/encode-and-decode-tinyurl/)</sub> | <sub><div align='center'>[✔️](c%2F0535-encode-and-decode-tinyurl.c)</div></sub> | <sub><div align='center'>[✔️](cpp%2F0535-encode-and-decode-tinyurl.cpp)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0535-encode-and-decode-tinyurl.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0535-encode-and-decode-tinyurl.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0535-encode-and-decode-tinyurl.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0535-encode-and-decode-tinyurl.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0535-encode-and-decode-tinyurl.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](rust%2F0535-encode-and-decode-tinyURL.rs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](swift%2F0535-Encode-and-Decode-TinyURL.Swift)</div></sub> | <sub><div align='center'>[✔️](typescript%2F0535-encode-and-decode-tinyurl.ts)</div></sub>
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package kotlin
2+
3+
class Codec {
4+
// Encodes a list of strings to a single string.
5+
fun encode(strs: List<String>): String {
6+
val stringBuilder = StringBuilder()
7+
for (string in strs) {
8+
for (char in string) {
9+
stringBuilder.append(char.toInt()) // char.code in newer version's of Kotlin
10+
stringBuilder.append(CHAR_DELIMITER)
11+
}
12+
stringBuilder.append(STRING_DELIMITER)
13+
}
14+
return stringBuilder.toString()
15+
}
16+
17+
// Decodes a single string to a list of strings.
18+
fun decode(s: String): List<String> {
19+
val stringBuilder = StringBuilder()
20+
val resultantList = mutableListOf<String>()
21+
var i = 0
22+
while (i in s.indices) {
23+
while (s[i] != STRING_DELIMITER) {
24+
var charIntegerValue = ""
25+
while (s[i] != CHAR_DELIMITER) {
26+
charIntegerValue += s[i]
27+
i++
28+
}
29+
stringBuilder.append(charIntegerValue.toInt().toChar())
30+
i++
31+
}
32+
resultantList.add(stringBuilder.toString())
33+
stringBuilder.clear()
34+
i++
35+
}
36+
return resultantList
37+
}
38+
39+
companion object {
40+
private const val CHAR_DELIMITER = '|'
41+
private const val STRING_DELIMITER = '/'
42+
}
43+
}

0 commit comments

Comments
 (0)