Skip to content

Commit d72c339

Browse files
committed
Updated tags
1 parent 251756d commit d72c339

File tree

7 files changed

+53
-28
lines changed
  • src/main/kotlin/g3501_3600
    • s3556_sum_of_largest_prime_substrings
    • s3558_number_of_ways_to_assign_edge_weights_i
    • s3559_number_of_ways_to_assign_edge_weights_ii
    • s3560_find_minimum_log_transportation_cost
    • s3561_resulting_string_after_adjacent_removals
    • s3562_maximum_profit_from_trading_stocks_with_discounts
    • s3563_lexicographically_smallest_string_after_adjacent_removals

7 files changed

+53
-28
lines changed

src/main/kotlin/g3501_3600/s3556_sum_of_largest_prime_substrings/Solution.kt

Lines changed: 45 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,66 @@
11
package g3501_3600.s3556_sum_of_largest_prime_substrings
22

3-
// #Medium #2025_05_25_Time_25_ms_(100.00%)_Space_43.67_MB_(100.00%)
3+
// #Medium #String #Hash_Table #Math #Sorting #Number_Theory
4+
// #2025_05_25_Time_25_ms_(100.00%)_Space_43.67_MB_(100.00%)
45

56
class Solution {
67
fun sumOfLargestPrimes(s: String): Long {
7-
val primeSet: MutableSet<Long> = HashSet<Long>()
8+
val set: MutableSet<Long> = HashSet()
89
val n = s.length
10+
var first: Long = -1
11+
var second: Long = -1
12+
var third: Long = -1
913
for (i in 0..<n) {
10-
var temp: Long = 0
14+
var num: Long = 0
1115
for (j in i..<n) {
12-
temp = temp * 10 + (s[j].code - '0'.code)
13-
if (isPrime(temp)) {
14-
primeSet.add(temp)
16+
num = num * 10 + (s[j].code - '0'.code)
17+
if (i != j && s[i] == '0') {
18+
break
19+
}
20+
if (isPrime(num) && !set.contains(num)) {
21+
set.add(num)
22+
if (num > first) {
23+
third = second
24+
second = first
25+
first = num
26+
} else if (num > second) {
27+
third = second
28+
second = num
29+
} else if (num > third) {
30+
third = num
31+
}
1532
}
1633
}
1734
}
18-
val primes: MutableList<Long> = ArrayList<Long>(primeSet)
19-
primes.sort()
20-
val m = primes.size
21-
if (m < 3) {
22-
var sum: Long = 0
23-
for (p in primes) {
24-
sum += p
25-
}
26-
return sum
35+
var sum: Long = 0
36+
if (first != -1L) {
37+
sum += first
38+
}
39+
if (second != -1L) {
40+
sum += second
41+
}
42+
if (third != -1L) {
43+
sum += third
2744
}
28-
return primes[m - 1] + primes[m - 2] + primes[m - 3]
45+
return sum
2946
}
3047

31-
private fun isPrime(n: Long): Boolean {
32-
if (n < 2) {
48+
fun isPrime(num: Long): Boolean {
49+
if (num <= 1) {
50+
return false
51+
}
52+
if (num == 2L || num == 3L) {
53+
return true
54+
}
55+
if (num % 2 == 0L || num % 3 == 0L) {
3356
return false
3457
}
35-
var i: Long = 2
36-
while (i * i <= n) {
37-
if (n % i == 0L) {
58+
var i: Long = 5
59+
while (i * i <= num) {
60+
if (num % i == 0L || num % (i + 2) == 0L) {
3861
return false
3962
}
40-
++i
63+
i += 6
4164
}
4265
return true
4366
}

src/main/kotlin/g3501_3600/s3558_number_of_ways_to_assign_edge_weights_i/Solution.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package g3501_3600.s3558_number_of_ways_to_assign_edge_weights_i
22

3-
// #Medium #2025_05_25_Time_160_ms_(100.00%)_Space_149.66_MB_(100.00%)
3+
// #Medium #Math #Depth_First_Search #Tree #2025_05_27_Time_21_ms_(100.00%)_Space_135.14_MB_(45.45%)
44

55
class Solution {
66
fun assignEdgeWeights(edges: Array<IntArray>): Int {

src/main/kotlin/g3501_3600/s3559_number_of_ways_to_assign_edge_weights_ii/Solution.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package g3501_3600.s3559_number_of_ways_to_assign_edge_weights_ii
22

3-
// #Hard #2025_05_25_Time_197_ms_(100.00%)_Space_158.27_MB_(100.00%)
3+
// #Hard #Array #Dynamic_Programming #Math #Depth_First_Search #Tree
4+
// #2025_05_25_Time_197_ms_(100.00%)_Space_158.27_MB_(100.00%)
45

56
import kotlin.math.ceil
67
import kotlin.math.ln

src/main/kotlin/g3501_3600/s3560_find_minimum_log_transportation_cost/Solution.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package g3501_3600.s3560_find_minimum_log_transportation_cost
22

3-
// #Easy #2025_05_25_Time_0_ms_(100.00%)_Space_40.46_MB_(100.00%)
3+
// #Easy #Math #2025_05_25_Time_0_ms_(100.00%)_Space_40.46_MB_(100.00%)
44

55
class Solution {
66
fun minCuttingCost(n: Int, m: Int, k: Int): Long {

src/main/kotlin/g3501_3600/s3561_resulting_string_after_adjacent_removals/Solution.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package g3501_3600.s3561_resulting_string_after_adjacent_removals
22

3-
// #Medium #2025_05_25_Time_43_ms_(100.00%)_Space_50.83_MB_(68.75%)
3+
// #Medium #String #Stack #Simulation #2025_05_25_Time_43_ms_(100.00%)_Space_50.83_MB_(68.75%)
44

55
class Solution {
66
fun resultingString(s: String): String {

src/main/kotlin/g3501_3600/s3562_maximum_profit_from_trading_stocks_with_discounts/Solution.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package g3501_3600.s3562_maximum_profit_from_trading_stocks_with_discounts
22

3-
// #Hard #2025_05_25_Time_40_ms_(100.00%)_Space_49.77_MB_(100.00%)
3+
// #Hard #Array #Dynamic_Programming #Depth_First_Search #Tree
4+
// #2025_05_25_Time_40_ms_(100.00%)_Space_49.77_MB_(100.00%)
45

56
import kotlin.math.max
67

src/main/kotlin/g3501_3600/s3563_lexicographically_smallest_string_after_adjacent_removals/Solution.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package g3501_3600.s3563_lexicographically_smallest_string_after_adjacent_removals
22

3-
// #Hard #2025_05_25_Time_186_ms_(100.00%)_Space_49.04_MB_(100.00%)
3+
// #Hard #String #Dynamic_Programming #2025_05_25_Time_186_ms_(100.00%)_Space_49.04_MB_(100.00%)
44

55
import kotlin.math.abs
66

0 commit comments

Comments
 (0)