File tree Expand file tree Collapse file tree 3 files changed +39
-61
lines changed
g0601_0700/s0620_not_boring_movies
s1309_decrypt_string_from_alphabet_to_integer_mapping
s1392_longest_happy_prefix Expand file tree Collapse file tree 3 files changed +39
-61
lines changed Original file line number Diff line number Diff line change 11# Write your MySQL query statement below
2- # #Easy #Database #2023_02_06_Time_305_ms_(59.80%)_Space_0B_(100.00%)
3- select id, movie, description, rating from Cinema
4- WHERE mod(id,2 ) = 1
5- and
6- description not LIKE ' %boring%'
7- order by rating DESC ;
2+ # #Easy #Database #2025_04_23_Time_259_ms_(64.69%)_Space_0.0_MB_(100.00%)
3+ SELECT id, movie, description, rating
4+ FROM Cinema
5+ WHERE description != ' boring' AND id % 2 != 0
6+ ORDER BY rating DESC ;
Original file line number Diff line number Diff line change 11package g1301_1400.s1309_decrypt_string_from_alphabet_to_integer_mapping
22
33// #Easy #String #Programming_Skills_I_Day_9_String
4- // #2023_06_05_Time_129_ms_(95.45%)_Space_34.8_MB_(63.64 %)
4+ // #2025_04_24_Time_0_ms_(100.00%)_Space_40.80_MB_(77.78 %)
55
66class Solution {
77 fun freqAlphabets (s : String ): String {
8- val map: MutableMap <String , String > = HashMap ()
9- map[" 1" ] = " a"
10- map[" 2" ] = " b"
11- map[" 3" ] = " c"
12- map[" 4" ] = " d"
13- map[" 5" ] = " e"
14- map[" 6" ] = " f"
15- map[" 7" ] = " g"
16- map[" 8" ] = " h"
17- map[" 9" ] = " i"
18- map[" 10#" ] = " j"
19- map[" 11#" ] = " k"
20- map[" 12#" ] = " l"
21- map[" 13#" ] = " m"
22- map[" 14#" ] = " n"
23- map[" 15#" ] = " o"
24- map[" 16#" ] = " p"
25- map[" 17#" ] = " q"
26- map[" 18#" ] = " r"
27- map[" 19#" ] = " s"
28- map[" 20#" ] = " t"
29- map[" 21#" ] = " u"
30- map[" 22#" ] = " v"
31- map[" 23#" ] = " w"
32- map[" 24#" ] = " x"
33- map[" 25#" ] = " y"
34- map[" 26#" ] = " z"
35- val sb = StringBuilder ()
36- var i = 0
37- while (i < s.length) {
38- if (((" " + s[i]).toInt() == 1 || (" " + s[i]).toInt() == 2 ) &&
39- i + 1 < s.length && i + 2 < s.length &&
40- s[i + 2 ] == ' #'
41- ) {
42- sb.append(map[s.substring(i, i + 3 )])
43- i + = 3
8+ val builder = StringBuilder ()
9+ var i = s.length - 1
10+ while (i >= 0 ) {
11+ if (s[i] == ' #' ) {
12+ decryptor(builder, i - 1 , i - 2 , s)
13+ i - = 3
4414 } else {
45- sb.append(map[" " + s[i]])
46- i++
15+ val ch = (s[i].code - ' 0' .code + 96 ).toChar()
16+ builder.append(ch)
17+ i--
4718 }
4819 }
49- return sb.toString()
20+ return builder.reverse().toString()
21+ }
22+
23+ private fun decryptor (builder : StringBuilder , a : Int , b : Int , s : String ) {
24+ builder.append((((s[b].code - ' 0' .code) * 10 + s[a].code - ' 0' .code) + 96 ).toChar())
5025 }
5126}
Original file line number Diff line number Diff line change 11package g1301_1400.s1392_longest_happy_prefix
22
33// #Hard #String #Hash_Function #String_Matching #Rolling_Hash
4- // #2023_06_06_Time_291_ms_(50 .00%)_Space_38.1_MB_(100 .00%)
4+ // #2025_04_24_Time_7_ms_(100 .00%)_Space_47.37_MB_(25 .00%)
55
66class Solution {
77 fun longestPrefix (s : String ): String {
8- val times = 2
9- var prefixHash: Long = 0
10- var suffixHash: Long = 0
11- var multiplier: Long = 1
12- var len: Long = 0
13- // use some large prime as a modulo to avoid overflow errors, e.g. 10 ^ 9 + 7.
14- val mod: Long = 1000000007
15- for (i in 0 until s.length - 1 ) {
16- prefixHash = (prefixHash * times + s[i].code.toLong()) % mod
17- suffixHash = (multiplier * s[s.length - i - 1 ].code.toLong() + suffixHash) % mod
18- if (prefixHash == suffixHash) {
19- len = i.toLong() + 1
8+ val c = s.toCharArray()
9+ val n = c.size
10+ val a = IntArray (n)
11+ var max = 0
12+ var i = 1
13+ while (i < n) {
14+ if (c[max] == c[i]) {
15+ max++
16+ a[i] = max
17+ i++
18+ } else {
19+ if (max > 0 ) {
20+ max = a[max - 1 ]
21+ } else {
22+ a[i] = 0
23+ i++
24+ }
2025 }
21- multiplier = multiplier * times % mod
2226 }
23- return s.substring(0 , len.toInt() )
27+ return s.substring(0 , a[n - 1 ] )
2428 }
2529}
You can’t perform that action at this time.
0 commit comments