File tree Expand file tree Collapse file tree 5 files changed +45
-62
lines changed 
g0601_0700/s0620_not_boring_movies 
s1309_decrypt_string_from_alphabet_to_integer_mapping 
s1392_longest_happy_prefix 
test/kotlin/g1301_1400/s1392_longest_happy_prefix Expand file tree Collapse file tree 5 files changed +45
-62
lines changed Original file line number Diff line number Diff line change @@ -498,7 +498,7 @@ implementation 'com.github.javadev:leetcode-in-kotlin:1.36'
498498| <!--  --> <!--  --> <!--  --> <!--  --> <!--  --> <!--  --> 
499499|-|-|-|-|-|-
500500| 0709 |[ To Lower Case] ( src/main/kotlin/g0701_0800/s0709_to_lower_case/Solution.kt ) | Easy | String | 142 | 98.68
501- | 1309 |[ Decrypt String from Alphabet to Integer Mapping] ( src/main/kotlin/g1301_1400/s1309_decrypt_string_from_alphabet_to_integer_mapping/Solution.kt ) | Easy | String | 129  | 95.45 
501+ | 1309 |[ Decrypt String from Alphabet to Integer Mapping] ( src/main/kotlin/g1301_1400/s1309_decrypt_string_from_alphabet_to_integer_mapping/Solution.kt ) | Easy | String | 0  | 100.00 
502502| 0953 |[ Verifying an Alien Dictionary] ( src/main/kotlin/g0901_1000/s0953_verifying_an_alien_dictionary/Solution.kt ) | Easy | Array, String, Hash_Table | 137 | 100.00
503503
504504#### Day 10 Linked List and Tree  
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' +  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' *  10  +  s[a].code -  ' 0' +  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}
Original file line number Diff line number Diff line change @@ -14,4 +14,9 @@ internal class SolutionTest {
1414    fun  longestPrefix2 () {
1515        assertThat(Solution ().longestPrefix(" ababab" " abab" 
1616    }
17+ 
18+     @Test
19+     fun  longestPrefix3 () {
20+         assertThat(Solution ().longestPrefix(" babbb" " b" 
21+     }
1722}
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments