Skip to content

Commit eeca2a8

Browse files
authored
Added tasks 1103-1148
1 parent 103772d commit eeca2a8

File tree

92 files changed

+3102
-2
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+3102
-2
lines changed

README.md

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1212,6 +1212,7 @@ implementation 'com.github.javadev:leetcode-in-kotlin:1.12'
12121212

12131213
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
12141214
|-|-|-|-|-|-
1215+
| 1146 |[Snapshot Array](src/main/kotlin/g1101_1200/s1146_snapshot_array/SnapshotArray.kt)| Medium | Array, Hash_Table, Binary_Search, Design | 1064 | 57.14
12151216

12161217
#### Day 19
12171218

@@ -1231,6 +1232,7 @@ implementation 'com.github.javadev:leetcode-in-kotlin:1.12'
12311232
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
12321233
|-|-|-|-|-|-
12331234
| 0509 |[Fibonacci Number](src/main/kotlin/g0501_0600/s0509_fibonacci_number/Solution.kt)| Easy | Dynamic_Programming, Math, Recursion, Memoization | 139 | 82.72
1235+
| 1137 |[N-th Tribonacci Number](src/main/kotlin/g1101_1200/s1137_n_th_tribonacci_number/Solution.kt)| Easy | Dynamic_Programming, Math, Memoization | 122 | 69.35
12341236

12351237
#### Day 2
12361238

@@ -1653,6 +1655,7 @@ implementation 'com.github.javadev:leetcode-in-kotlin:1.12'
16531655

16541656
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
16551657
|-|-|-|-|-|-
1658+
| 1129 |[Shortest Path with Alternating Colors](src/main/kotlin/g1101_1200/s1129_shortest_path_with_alternating_colors/Solution.kt)| Medium | Breadth_First_Search, Graph | 241 | 16.67
16561659
| 0847 |[Shortest Path Visiting All Nodes](src/main/kotlin/g0801_0900/s0847_shortest_path_visiting_all_nodes/Solution.kt)| Hard | Dynamic_Programming, Breadth_First_Search, Bit_Manipulation, Graph, Bitmask | 164 | 100.00
16571660

16581661
#### Day 11 Breadth First Search
@@ -1716,6 +1719,7 @@ implementation 'com.github.javadev:leetcode-in-kotlin:1.12'
17161719
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
17171720
|-|-|-|-|-|-
17181721
| 0175 |[Combine Two Tables](src/main/kotlin/g0101_0200/s0175_combine_two_tables/script.sql)| Easy | Database | 473 | 54.97
1722+
| 1148 |[Article Views I](src/main/kotlin/g1101_1200/s1148_article_views_i/script.sql)| Easy | LeetCode_Curated_SQL_70, Database | 806 | 54.41
17191723

17201724
#### Day 6 Union
17211725

@@ -1728,6 +1732,7 @@ implementation 'com.github.javadev:leetcode-in-kotlin:1.12'
17281732

17291733
| <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- --> | <!-- -->
17301734
|-|-|-|-|-|-
1735+
| 1141 |[User Activity for the Past 30 Days I](src/main/kotlin/g1101_1200/s1141_user_activity_for_the_past_30_days_i/script.sql)| Easy | LeetCode_Curated_SQL_70, Database | 790 | 87.11
17311736

17321737
#### Day 8 Function
17331738

@@ -1754,7 +1759,7 @@ implementation 'com.github.javadev:leetcode-in-kotlin:1.12'
17541759
| # | Title | Difficulty | Tag | Time, ms | Time, %
17551760
|------|----------------|-------------|-------------|----------|---------
17561761
| 1200 |[Minimum Absolute Difference](src/main/kotlin/g1101_1200/s1200_minimum_absolute_difference/Solution.kt)| Easy | Array, Sorting | 507 | 75.00
1757-
| 1195 |[Fizz Buzz Multithreaded](src/main/kotlin/g1101_1200/s1195_fizz_buzz_multithreaded/FizzBuzz.kt)| Medium || |
1762+
| 1195 |[Fizz Buzz Multithreaded](src/main/kotlin/g1101_1200/s1195_fizz_buzz_multithreaded/FizzBuzz.kt)| Medium | Concurrency | 6 | 87.26
17581763
| 1192 |[Critical Connections in a Network](src/main/kotlin/g1101_1200/s1192_critical_connections_in_a_network/Solution.kt)| Hard | Depth_First_Search, Graph, Biconnected_Component | 1696 | 60.00
17591764
| 1191 |[K-Concatenation Maximum Sum](src/main/kotlin/g1101_1200/s1191_k_concatenation_maximum_sum/Solution.kt)| Medium | Array, Dynamic_Programming | 389 | 100.00
17601765
| 1190 |[Reverse Substrings Between Each Pair of Parentheses](src/main/kotlin/g1101_1200/s1190_reverse_substrings_between_each_pair_of_parentheses/Solution.kt)| Medium | String, Stack | 153 | 42.86
@@ -1780,7 +1785,37 @@ implementation 'com.github.javadev:leetcode-in-kotlin:1.12'
17801785
| 1156 |[Swap For Longest Repeated Character Substring](src/main/kotlin/g1101_1200/s1156_swap_for_longest_repeated_character_substring/Solution.kt)| Medium | String, Sliding_Window | 195 | 20.00
17811786
| 1155 |[Number of Dice Rolls With Target Sum](src/main/kotlin/g1101_1200/s1155_number_of_dice_rolls_with_target_sum/Solution.kt)| Medium | Dynamic_Programming | 158 | 80.95
17821787
| 1154 |[Day of the Year](src/main/kotlin/g1101_1200/s1154_day_of_the_year/Solution.kt)| Easy | String, Math | 317 | 70.00
1788+
| 1148 |[Article Views I](src/main/kotlin/g1101_1200/s1148_article_views_i/script.sql)| Easy | LeetCode_Curated_SQL_70, Database, SQL_I_Day_5_Union | 806 | 54.41
1789+
| 1147 |[Longest Chunked Palindrome Decomposition](src/main/kotlin/g1101_1200/s1147_longest_chunked_palindrome_decomposition/Solution.kt)| Hard | String, Dynamic_Programming, Greedy, Two_Pointers, Hash_Function, Rolling_Hash | 148 | 50.00
1790+
| 1146 |[Snapshot Array](src/main/kotlin/g1101_1200/s1146_snapshot_array/SnapshotArray.kt)| Medium | Array, Hash_Table, Binary_Search, Design, Binary_Search_II_Day_18 | 1064 | 57.14
1791+
| 1145 |[Binary Tree Coloring Game](src/main/kotlin/g1101_1200/s1145_binary_tree_coloring_game/Solution.kt)| Medium | Depth_First_Search, Tree, Binary_Tree | 181 | 100.00
1792+
| 1144 |[Decrease Elements To Make Array Zigzag](src/main/kotlin/g1101_1200/s1144_decrease_elements_to_make_array_zigzag/Solution.kt)| Medium | Array, Greedy | 144 | 100.00
17831793
| 1143 |[Longest Common Subsequence](src/main/kotlin/g1101_1200/s1143_longest_common_subsequence/Solution.kt)| Medium | Top_100_Liked_Questions, String, Dynamic_Programming, Algorithm_II_Day_17_Dynamic_Programming, Dynamic_Programming_I_Day_19, Udemy_Dynamic_Programming | 307 | 38.36
1794+
| 1141 |[User Activity for the Past 30 Days I](src/main/kotlin/g1101_1200/s1141_user_activity_for_the_past_30_days_i/script.sql)| Easy | LeetCode_Curated_SQL_70, Database, SQL_I_Day_7_Function | 790 | 87.11
1795+
| 1140 |[Stone Game II](src/main/kotlin/g1101_1200/s1140_stone_game_ii/Solution.kt)| Medium | Array, Dynamic_Programming, Math, Game_Theory | 166 | 93.27
1796+
| 1139 |[Largest 1-Bordered Square](src/main/kotlin/g1101_1200/s1139_largest_1_bordered_square/Solution.kt)| Medium | Array, Dynamic_Programming, Matrix | 224 | 100.00
1797+
| 1138 |[Alphabet Board Path](src/main/kotlin/g1101_1200/s1138_alphabet_board_path/Solution.kt)| Medium | String, Hash_Table | 138 | 100.00
1798+
| 1137 |[N-th Tribonacci Number](src/main/kotlin/g1101_1200/s1137_n_th_tribonacci_number/Solution.kt)| Easy | Dynamic_Programming, Math, Memoization, Dynamic_Programming_I_Day_1 | 122 | 69.35
1799+
| 1131 |[Maximum of Absolute Value Expression](src/main/kotlin/g1101_1200/s1131_maximum_of_absolute_value_expression/Solution.kt)| Medium | Array, Math | 333 | 100.00
1800+
| 1130 |[Minimum Cost Tree From Leaf Values](src/main/kotlin/g1101_1200/s1130_minimum_cost_tree_from_leaf_values/Solution.kt)| Medium | Dynamic_Programming, Greedy, Stack, Monotonic_Stack | 145 | 66.67
1801+
| 1129 |[Shortest Path with Alternating Colors](src/main/kotlin/g1101_1200/s1129_shortest_path_with_alternating_colors/Solution.kt)| Medium | Breadth_First_Search, Graph, Graph_Theory_I_Day_10_Standard_Traversal | 241 | 16.67
1802+
| 1128 |[Number of Equivalent Domino Pairs](src/main/kotlin/g1101_1200/s1128_number_of_equivalent_domino_pairs/Solution.kt)| Easy | Array, Hash_Table, Counting | 289 | 80.00
1803+
| 1125 |[Smallest Sufficient Team](src/main/kotlin/g1101_1200/s1125_smallest_sufficient_team/Solution.kt)| Hard | Array, Dynamic_Programming, Bit_Manipulation, Bitmask | 181 | 100.00
1804+
| 1124 |[Longest Well-Performing Interval](src/main/kotlin/g1101_1200/s1124_longest_well_performing_interval/Solution.kt)| Medium | Array, Hash_Table, Stack, Prefix_Sum, Monotonic_Stack | 313 | 100.00
1805+
| 1123 |[Lowest Common Ancestor of Deepest Leaves](src/main/kotlin/g1101_1200/s1123_lowest_common_ancestor_of_deepest_leaves/Solution.kt)| Medium | Hash_Table, Depth_First_Search, Breadth_First_Search, Tree, Binary_Tree | 221 | 66.67
1806+
| 1122 |[Relative Sort Array](src/main/kotlin/g1101_1200/s1122_relative_sort_array/Solution.kt)| Easy | Array, Hash_Table, Sorting, Counting_Sort | 183 | 90.00
1807+
| 1117 |[Building H2O](src/main/kotlin/g1101_1200/s1117_building_h2o/H2O.kt)| Medium | Concurrency | 20 | 45.16
1808+
| 1116 |[Print Zero Even Odd](src/main/kotlin/g1101_1200/s1116_print_zero_even_odd/ZeroEvenOdd.kt)| Medium | Concurrency | 7 | 39.21
1809+
| 1115 |[Print FooBar Alternately](src/main/kotlin/g1101_1200/s1115_print_foobar_alternately/FooBar.kt)| Medium | Concurrency | 23 | 71.25
1810+
| 1114 |[Print in Order](src/main/kotlin/g1101_1200/s1114_print_in_order/Foo.kt)| Easy | Concurrency | 13 | 30.13
1811+
| 1111 |[Maximum Nesting Depth of Two Valid Parentheses Strings](src/main/kotlin/g1101_1200/s1111_maximum_nesting_depth_of_two_valid_parentheses_strings/Solution.kt)| Medium | String, Stack | 207 | 33.33
1812+
| 1110 |[Delete Nodes And Return Forest](src/main/kotlin/g1101_1200/s1110_delete_nodes_and_return_forest/Solution.kt)| Medium | Depth_First_Search, Tree, Binary_Tree | 223 | 100.00
1813+
| 1109 |[Corporate Flight Bookings](src/main/kotlin/g1101_1200/s1109_corporate_flight_bookings/Solution.kt)| Medium | Array, Prefix_Sum | 719 | 100.00
1814+
| 1108 |[Defanging an IP Address](src/main/kotlin/g1101_1200/s1108_defanging_an_ip_address/Solution.kt)| Easy | String | 159 | 62.10
1815+
| 1106 |[Parsing A Boolean Expression](src/main/kotlin/g1101_1200/s1106_parsing_a_boolean_expression/Solution.kt)| Hard | String, Stack, Recursion | 205 | 100.00
1816+
| 1105 |[Filling Bookcase Shelves](src/main/kotlin/g1101_1200/s1105_filling_bookcase_shelves/Solution.kt)| Medium | Array, Dynamic_Programming | 175 | 33.33
1817+
| 1104 |[Path In Zigzag Labelled Binary Tree](src/main/kotlin/g1101_1200/s1104_path_in_zigzag_labelled_binary_tree/Solution.kt)| Medium | Math, Tree, Binary_Tree | 136 | 100.00
1818+
| 1103 |[Distribute Candies to People](src/main/kotlin/g1101_1200/s1103_distribute_candies_to_people/Solution.kt)| Easy | Math, Simulation | 129 | 100.00
17841819
| 1073 |[Adding Two Negabinary Numbers](src/main/kotlin/g1001_1100/s1073_adding_two_negabinary_numbers/Solution.kt)| Medium | Array, Math | 187 | 100.00
17851820
| 1072 |[Flip Columns For Maximum Number of Equal Rows](src/main/kotlin/g1001_1100/s1072_flip_columns_for_maximum_number_of_equal_rows/Solution.kt)| Medium | Array, Hash_Table, Matrix | 536 | 100.00
17861821
| 1071 |[Greatest Common Divisor of Strings](src/main/kotlin/g1001_1100/s1071_greatest_common_divisor_of_strings/Solution.kt)| Easy | String, Math | 150 | 80.68
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package g1101_1200.s1103_distribute_candies_to_people
2+
3+
// #Easy #Math #Simulation #2023_05_31_Time_129_ms_(100.00%)_Space_34.9_MB_(50.00%)
4+
5+
@Suppress("NAME_SHADOWING")
6+
class Solution {
7+
fun distributeCandies(candies: Int, numPeople: Int): IntArray {
8+
var candies = candies
9+
val candiesDistribution = IntArray(numPeople)
10+
var count = 1
11+
while (candies > 0) {
12+
for (i in 0 until numPeople) {
13+
if (candies >= count) {
14+
candiesDistribution[i] += count
15+
candies -= count
16+
count++
17+
} else if (candies > 0) {
18+
candiesDistribution[i] += candies
19+
candies -= candies
20+
}
21+
if (candies == 0) {
22+
return candiesDistribution
23+
}
24+
}
25+
}
26+
return candiesDistribution
27+
}
28+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
1103\. Distribute Candies to People
2+
3+
Easy
4+
5+
We distribute some number of `candies`, to a row of **`n = num_people`** people in the following way:
6+
7+
We then give 1 candy to the first person, 2 candies to the second person, and so on until we give `n` candies to the last person.
8+
9+
Then, we go back to the start of the row, giving `n + 1` candies to the first person, `n + 2` candies to the second person, and so on until we give `2 * n` candies to the last person.
10+
11+
This process repeats (with us giving one more candy each time, and moving to the start of the row after we reach the end) until we run out of candies. The last person will receive all of our remaining candies (not necessarily one more than the previous gift).
12+
13+
Return an array (of length `num_people` and sum `candies`) that represents the final distribution of candies.
14+
15+
**Example 1:**
16+
17+
**Input:** candies = 7, num\_people = 4
18+
19+
**Output:** [1,2,3,1]
20+
21+
**Explanation:**
22+
23+
On the first turn, ans[0] += 1, and the array is [1,0,0,0].
24+
25+
On the second turn, ans[1] += 2, and the array is [1,2,0,0].
26+
27+
On the third turn, ans[2] += 3, and the array is [1,2,3,0].
28+
29+
On the fourth turn, ans[3] += 1 (because there is only one candy left), and the final array is [1,2,3,1].
30+
31+
**Example 2:**
32+
33+
**Input:** candies = 10, num\_people = 3
34+
35+
**Output:** [5,2,3]
36+
37+
**Explanation:**
38+
39+
On the first turn, ans[0] += 1, and the array is [1,0,0].
40+
41+
On the second turn, ans[1] += 2, and the array is [1,2,0].
42+
43+
On the third turn, ans[2] += 3, and the array is [1,2,3].
44+
45+
On the fourth turn, ans[0] += 4, and the final array is [5,2,3].
46+
47+
**Constraints:**
48+
49+
* 1 <= candies <= 10^9
50+
* 1 <= num\_people <= 1000
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package g1101_1200.s1104_path_in_zigzag_labelled_binary_tree
2+
3+
// #Medium #Math #Tree #Binary_Tree #2023_05_31_Time_136_ms_(100.00%)_Space_34.1_MB_(100.00%)
4+
5+
import java.util.LinkedList
6+
7+
@Suppress("NAME_SHADOWING")
8+
class Solution {
9+
fun pathInZigZagTree(label: Int): List<Int> {
10+
var label = label
11+
val answer: MutableList<Int> = LinkedList()
12+
while (label != 0) {
13+
answer.add(0, label)
14+
val logNode = (Math.log(label.toDouble()) / Math.log(2.0)).toInt()
15+
val levelStart = Math.pow(2.0, logNode.toDouble()).toInt()
16+
val diff = label - levelStart
17+
val d2 = diff / 2
18+
val prevEnd = levelStart - 1
19+
val prevLabel = prevEnd - d2
20+
label = prevLabel
21+
}
22+
return answer
23+
}
24+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
1104\. Path In Zigzag Labelled Binary Tree
2+
3+
Medium
4+
5+
In an infinite binary tree where every node has two children, the nodes are labelled in row order.
6+
7+
In the odd numbered rows (ie., the first, third, fifth,...), the labelling is left to right, while in the even numbered rows (second, fourth, sixth,...), the labelling is right to left.
8+
9+
![](https://assets.leetcode.com/uploads/2019/06/24/tree.png)
10+
11+
Given the `label` of a node in this tree, return the labels in the path from the root of the tree to the node with that `label`.
12+
13+
**Example 1:**
14+
15+
**Input:** label = 14
16+
17+
**Output:** [1,3,4,14]
18+
19+
**Example 2:**
20+
21+
**Input:** label = 26
22+
23+
**Output:** [1,2,6,10,26]
24+
25+
**Constraints:**
26+
27+
* `1 <= label <= 10^6`
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package g1101_1200.s1105_filling_bookcase_shelves
2+
3+
// #Medium #Array #Dynamic_Programming #2023_05_31_Time_175_ms_(33.33%)_Space_39.8_MB_(33.33%)
4+
5+
class Solution {
6+
fun minHeightShelves(books: Array<IntArray>, shelfWidth: Int): Int {
7+
val n = books.size
8+
val dp = IntArray(n + 1)
9+
dp.fill(Int.MAX_VALUE)
10+
dp[0] = 0
11+
for (i in 1..n) {
12+
var widthLeft = shelfWidth
13+
var maxH = 0
14+
for (j in i - 1 downTo 0) {
15+
widthLeft -= books[j][0]
16+
maxH = Math.max(maxH, books[j][1])
17+
if (widthLeft >= 0) {
18+
dp[i] = Math.min(dp[i], maxH + dp[j])
19+
}
20+
}
21+
}
22+
return dp[n]
23+
}
24+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
1105\. Filling Bookcase Shelves
2+
3+
Medium
4+
5+
You are given an array `books` where <code>books[i] = [thickness<sub>i</sub>, height<sub>i</sub>]</code> indicates the thickness and height of the <code>i<sup>th</sup></code> book. You are also given an integer `shelfWidth`.
6+
7+
We want to place these books in order onto bookcase shelves that have a total width `shelfWidth`.
8+
9+
We choose some of the books to place on this shelf such that the sum of their thickness is less than or equal to `shelfWidth`, then build another level of the shelf of the bookcase so that the total height of the bookcase has increased by the maximum height of the books we just put down. We repeat this process until there are no more books to place.
10+
11+
Note that at each step of the above process, the order of the books we place is the same order as the given sequence of books.
12+
13+
* For example, if we have an ordered list of `5` books, we might place the first and second book onto the first shelf, the third book on the second shelf, and the fourth and fifth book on the last shelf.
14+
15+
Return _the minimum possible height that the total bookshelf can be after placing shelves in this manner_.
16+
17+
**Example 1:**
18+
19+
![](https://assets.leetcode.com/uploads/2019/06/24/shelves.png)
20+
21+
**Input:** books = [[1,1],[2,3],[2,3],[1,1],[1,1],[1,1],[1,2]], shelf\_width = 4
22+
23+
**Output:** 6
24+
25+
**Explanation:**
26+
27+
The sum of the heights of the 3 shelves is 1 + 3 + 2 = 6.
28+
29+
Notice that book number 2 does not have to be on the first shelf.
30+
31+
**Example 2:**
32+
33+
**Input:** books = [[1,3],[2,4],[3,2]], shelfWidth = 6
34+
35+
**Output:** 4
36+
37+
**Constraints:**
38+
39+
* `1 <= books.length <= 1000`
40+
* <code>1 <= thickness<sub>i</sub> <= shelfWidth <= 1000</code>
41+
* <code>1 <= height<sub>i</sub> <= 1000</code>
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
package g1101_1200.s1106_parsing_a_boolean_expression
2+
3+
// #Hard #String #Stack #Recursion #2023_05_31_Time_205_ms_(100.00%)_Space_49.5_MB_(50.00%)
4+
5+
class Solution {
6+
private var source: String? = null
7+
private var index = 0
8+
9+
fun parseBoolExpr(expression: String?): Boolean {
10+
source = expression
11+
index = 0
12+
return expr()
13+
}
14+
15+
private fun expr(): Boolean {
16+
val res: Boolean
17+
res = if (match('!')) {
18+
not()
19+
} else if (match('&')) {
20+
and()
21+
} else if (match('|')) {
22+
or()
23+
} else {
24+
bool()
25+
}
26+
return res
27+
}
28+
29+
private operator fun not(): Boolean {
30+
consume('!')
31+
return !group()[0]
32+
}
33+
34+
private fun or(): Boolean {
35+
consume('|')
36+
var res = false
37+
for (e in group()) {
38+
res = res or e
39+
}
40+
return res
41+
}
42+
43+
private fun and(): Boolean {
44+
consume('&')
45+
var res = true
46+
for (e in group()) {
47+
res = res and e
48+
}
49+
return res
50+
}
51+
52+
private fun group(): List<Boolean> {
53+
consume('(')
54+
val res: MutableList<Boolean> = ArrayList()
55+
while (!match(')')) {
56+
res.add(expr())
57+
if (match(',')) {
58+
advance()
59+
}
60+
}
61+
consume(')')
62+
return res
63+
}
64+
65+
private fun bool(): Boolean {
66+
val isTrue = match('t')
67+
advance()
68+
return isTrue
69+
}
70+
71+
private val isAtEnd: Boolean
72+
private get() = index >= source!!.length
73+
74+
private fun advance() {
75+
if (isAtEnd) {
76+
return
77+
}
78+
index++
79+
}
80+
81+
private fun peek(): Char {
82+
return source!![index]
83+
}
84+
85+
private fun match(ch: Char): Boolean {
86+
return if (isAtEnd) {
87+
false
88+
} else peek() == ch
89+
}
90+
91+
private fun consume(ch: Char) {
92+
if (!match(ch)) {
93+
return
94+
}
95+
advance()
96+
}
97+
}

0 commit comments

Comments
 (0)