Advertisement
Guest User

Untitled

a guest
Mar 15th, 2021
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 0.87 KB | None | 0 0
  1. open System
  2. open System.Collections.Generic
  3. open System.Linq
  4.  
  5.  
  6. let n = int(Console.In.ReadLine())
  7. let prefix = new Dictionary<string,string>()
  8. for i in 0 .. n - 1 do
  9.     let token = (Console.In.ReadLine()).Split [|' '|]
  10.     let b = token.[0]
  11.     let c = int(token.[1])
  12.     prefix.Add(b,string(char(c)))
  13.     ()
  14.  
  15. let s = Console.In.ReadLine()
  16. let ok = true
  17. let i = 0
  18. let result = ""
  19.  
  20. while i < String.length s  do
  21.     let ok = false    
  22.     let k = 0
  23.     while (k < prefix.Keys.Count() && !ok) do    
  24.         let k =  prefix.Keys[k]
  25.         let v = prefix[k]
  26.         let l = String.length k
  27.         let ed = i + l
  28.         if String.length s >= ed && s.[i..ed] = k then
  29.             let ok = true
  30.             result += v
  31.             i += l
  32.         k++
  33.     if (!ok) then
  34.         printfn "DECODE FAIL AT INDEX " + string(i)    
  35. if (ok) then
  36.     printfn result
  37.  
  38.  
  39.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement