Advertisement
PotatoInBrackets

Aoc Day 6

Dec 7th, 2022
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. RawData := FileOpen(A_ScriptDir "\aoc6.txt", "r").Read(), RawData.Close()
  2.  
  3. msgbox % FindMark(RawData, 4)
  4. msgbox % FindMark(RawData, 14)
  5.  
  6. ; func
  7. FindMark(Search, distNum)
  8. {
  9.     Loop % StrLen(Search)
  10.     {
  11.         t := {}
  12.         for k, v in StrSplit(SubStr(Search, A_Index, distNum))
  13.             t[v] := 0
  14.         if mark := (t.count() = distNum) ? A_Index - 1 + distNum : 0
  15.             return mark
  16.     }
  17. }
  18.  
  19. ; my first idea...
  20. ; FindMark(Search, distNum)
  21. ; {
  22. ;     Loop % StrLen(Search)
  23. ;     {
  24. ;         if (A_Index < distNum)
  25. ;             continue
  26. ;         str := SubStr(Search, A_Index - distNum, distNum), occ := 0
  27. ;         for k, v in StrSplit(str)
  28. ;         {
  29. ;             StrReplace(str, v, , replaces)
  30. ;             occ += replaces
  31. ;         }        
  32. ;         if (occ = distNum)
  33. ;             return A_Index - 1
  34. ;     }
  35. ; }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement