Xah Talk Show 2025-12-15 Ep725 Wolfram Language, Advent of Code 2025, Day 2, Problem 2

xah talk show ep725 1fd24
xah talk show ep725 1fd24

Video Summary (Generated by AI, Edited by Human.)

xah talk show ep725 Wolfram language 206c7
xah talk show ep725 Wolfram language 206c7

Code

xinput = "8123221734-8123333968,2665-4538,189952-274622,4975-9031,24163352-24202932,1233-1772,9898889349-9899037441,2-15,2147801-2281579,296141-327417,8989846734-8989940664,31172-42921,593312-632035,862987-983007,613600462-613621897,81807088-81833878,13258610-13489867,643517-782886,986483-1022745,113493-167913,10677-16867,372-518,3489007333-3489264175,1858-2534,18547-26982,16-29,247-366,55547-103861,57-74,30-56,1670594-1765773,76-129,134085905-134182567,441436-566415,7539123416-7539252430,668-1146,581563513-581619699";
StringMatchQ[ "121212" , RegularExpression[ "(\\d+)\\1"] ]
(* False *)

StringMatchQ[ "121212" , RegularExpression[ "(\\d+)\\1\\1" ] ]
(* True *)

StringMatchQ[ "121212" , RegularExpression[ "((\\d+)\\1\\1)" ] ]
(* False *)

StringMatchQ[ "121212" , RegularExpression[ "(\\d+)\\1|(\\d+)\\1\\1" ] ]
(* False *)

(* s------------------------------ *)

StringMatchQ[ "121212" , RegularExpression[ "(\\d+)\\1\\1" ] ]
(* True *)

StringMatchQ[ "121212" , RegularExpression[ "(?:(\\d+)\\1\\1)" ] ]
(* True *)

(* s------------------------------ *)

StringMatchQ[ "121212" , RegularExpression[ "(\\d+)\\1{1,20}" ] ]
(* True *)

StringMatchQ[ "12121212" , RegularExpression[ "(\\d+)\\1{1,20}" ] ]
(* True *)

StringMatchQ[ "1212" , RegularExpression[ "(\\d+)\\1{1,20}" ] ]
(* True *)

StringMatchQ[ "12123" , RegularExpression[ "(\\d+)\\1{1,20}" ] ]
(* False *)

(* s------------------------------ *)
(* xinput = "11-22,95-115,998-1012,1188511880-1188511890,222220-222224,1698522-1698528,446443-446449,38593856-38593862,565653-565659,824824821-824824827,2121212118-2121212124"; *)

xinput = "8123221734-8123333968,2665-4538,189952-274622,4975-9031,24163352-24202932,1233-1772,9898889349-9899037441,2-15,2147801-2281579,296141-327417,8989846734-8989940664,31172-42921,593312-632035,862987-983007,613600462-613621897,81807088-81833878,13258610-13489867,643517-782886,986483-1022745,113493-167913,10677-16867,372-518,3489007333-3489264175,1858-2534,18547-26982,16-29,247-366,55547-103861,57-74,30-56,1670594-1765773,76-129,134085905-134182567,441436-566415,7539123416-7539252430,668-1146,581563513-581619699";

xsplitedInput = StringSplit[xinput,","];

newInputList = Map[
Function[x,
Apply[Range , Map[ ToExpression, StringSplit[x,"-"]]]
] ,
xsplitedInput];

Total @ Flatten @
Map[
Function[xnumberList,
 Select[xnumberList,
  Function[x,
   StringMatchQ[ ToString[x] ,
RegularExpression[ "(\\d+)\\1{1,20}" ]
 ]]
]] ,
newInputList
]

(* 76169125915 *)
xinput = "11-22,95-115,998-1012,1188511880-1188511890,222220-222224,1698522-1698528,446443-446449,38593856-38593862,565653-565659,824824821-824824827,2121212118-2121212124";

Total @ Flatten @ Map[ Function[xnumberList, Select[xnumberList, Function[x, StringMatchQ[ ToString[x] , RegularExpression[ "(\\d+)\\1{1,20}" ] ]] ]] , Map[ Function[x, Apply[Range , Map[ ToExpression, StringSplit[x,"-"]]] ] , StringSplit[xinput,","]] ]
(* 4174379265 *)

(* s------------------------------ *)

(* shortcut syntax  *)
Total @ Flatten @ ((Select[#, Function[x, StringMatchQ[ ToString[x] , RegularExpression[ "(\\d+)\\1{1,20}" ] ]] ] &) /@ ((Range @@ Map[ ToExpression, StringSplit[#,"-"]] &) /@ StringSplit[xinput,","]) )
(* 4174379265 *)

Advent of Code 2025