package Ġcom . ex emple . scr ab ble čĊč Ċ import Ġandroid . os . Bundle č Ċ import Ġandroidx . appcompat . app . AppCompatActivity čĊč Ċ /** čĊ Ġ* ĠTitle : ĠScr ab ble čĊ Ġ* čĊ Ġ* ĠAuthor : ĠG ab riel ĠCa et ano ĠA ra Ãº jo čĊ Ġ* čĊ Ġ* ĠB rief : čĊ Ġ* ĠThe Ġlogic Ġof Ġthe Ġprogram Ġis Ġbased Ġon Ġgoing Ġthrough Ġa Ġtree Ġ[ T rie ] Ġin Ġsearch čĊ Ġ* Ġof Ġfinding Ġall Ġpossible Ġwords Ġthat Ġcan Ġbe Ġformed Ġwith Ġthe Ġcharacters Ġentered . čĊ Ġ* ĠAfter Ġall Ġthe Ġwords Ġhave Ġbeen Ġfound , Ġthe Ġalgorithm Ġgoes Ġthrough Ġa Ġref inement čĊ Ġ* Ġphase , Ġin Ġwhich Ġthe Ġselected Ġwords Ġare Ġvalidated Ġand Ġthose Ġthat Ġdo Ġnot čĊ Ġ* Ġrespect Ġthe Ġfrequency Ġof Ġcharacters Ġare Ġdiscarded . ĠAfter Ġthis Ġref inement , čĊ Ġ* Ġthe Ġpoint Ġcount Ġis Ġmade , Ġin Ġwhich Ġeach Ġletter Ġthat Ġmakes Ġup Ġthe Ġword Ġis čĊ Ġ* Ġverified Ġto Ġassign Ġthe Ġfinal Ġscore Ġand Ġafter Ġcalculating Ġthe Ġvalue Ġof Ġall čĊ Ġ* Ġwords , Ġthe Ġword Ġwith Ġthe Ġhighest Ġscore Ġis Ġreturned . čĊ Ġ* čĊ Ġ* ĠData ĠStructure ĠUsed : čĊ Ġ* ĠA Ġ[ T rie ] Ġtree , Ġor Ġprefix Ġtree , Ġis Ġan Ġordered Ġtree Ġthat Ġcan Ġbe Ġused Ġto Ġstore čĊ Ġ* Ġan Ġarray Ġwhere Ġthe Ġkeys Ġare Ġusually Ġstrings . ĠAll Ġdesc endants Ġof Ġany Ġnode Ġhave čĊ Ġ* Ġa Ġcommon Ġprefix Ġwith Ġthe Ġchain Ġassociated Ġwith Ġthat Ġnode , Ġand Ġthe Ġroot Ġis čĊ Ġ* Ġassociated Ġwith Ġthe Ġempty Ġchain . ĠNorm ally , Ġvalues ĠâĢ ĭ âĢĭ are Ġnot Ġassociated Ġwith čĊ Ġ* Ġall Ġnodes , Ġonly Ġwith Ġthe Ġleaves Ġand Ġsome Ġinternal Ġnodes Ġthat Ġcorrespond Ġto čĊ Ġ* Ġkeys Ġof Ġinterest . čĊ Ġ* čĊ Ġ* ĠThe Ġchoice Ġof Ġthis Ġdata Ġstructure Ġis Ġdue Ġto Ġthe Ġfact Ġthat Ġits Ġsearch Ġis Ġvery čĊ Ġ* Ġfast , Ġsince Ġat Ġeach Ġlevel Ġof Ġthe Ġtree Ġthe Ġcombin ator ial Ġnature Ġof Ġthe Ġproblem čĊ Ġ* Ġde creases , Ġsince Ġit Ġfilters Ġpossible Ġcombinations Ġof Ġcharacters Ġaccording Ġto čĊ Ġ* Ġthe Ġavailable Ġdictionary . čĊ Ġ* čĊ Ġ* ĠInput Ġhandling : čĊ Ġ* ĠThe Ġprocessing Ġof Ġdata Ġentry Ġis Ġcarried Ġout Ġbefore Ġthe Ġsearch Ġbegins . ĠSpecial čĊ Ġ* Ġcharacters Ġare Ġremoved Ġand Ġsaved Ġto Ġbe Ġadded Ġto Ġunused Ġcharacters Ġin Ġthe čĊ Ġ* Ġfuture . ĠInit ially , Ġthe Ġreceived Ġstring Ġis Ġconverted Ġto Ġlowercase Ġletters , čĊ Ġ* Ġthen Ġit Ġis Ġpassed Ġto Ġthe Ġfiltering Ġprocess , Ġin Ġwhich Ġthe Ġspecial Ġcharacters čĊ Ġ* Ġare Ġremoved , Ġand Ġfinally Ġit Ġis Ġsent Ġto Ġthe Ġsearch Ġfunction . čĊ Ġ* čĊ Ġ* ĠWord ĠFiltering : čĊ Ġ* ĠAfter Ġthe Ġsearch Ġhas Ġbeen Ġcarried Ġout , Ġthere Ġis Ġa Ġset Ġof Ġstrings Ġwith Ġall Ġthe čĊ Ġ* Ġwords Ġfound , Ġthese Ġwords Ġin Ġturn Ġneed Ġto Ġbe Ġvalidated , Ġas Ġthe Ġsearch Ġdoes Ġnot čĊ Ġ* Ġconsider Ġthe Ġfrequency Ġof Ġthe Ġcharacters , Ġbut Ġtheir Ġexistence . ĠTherefore , Ġfor čĊ Ġ* Ġeach Ġword Ġfound , Ġit Ġis Ġverified Ġthat Ġthe Ġcharacters Ġfound Ġrespect Ġthe čĊ Ġ* Ġfrequency Ġof Ġthe Ġcharacters Ġreceived Ġin Ġthe Ġinput Ġand Ġthen Ġthe Ġvalid Ġstrings čĊ Ġ* Ġare Ġreturned . ĠHere Ġis Ġan Ġexample , Ġif Ġthe Ġentry Ġis Ġ" al ban ", Ġit Ġwould Ġbe čĊ Ġ* Ġpossible Ġto Ġform Ġthe Ġwords Ġ" ban al ", Ġ" ban " Ġand Ġ" ban ana ", Ġbut Ġin Ġthe Ġword čĊ Ġ* Ġ" ban ana " Ġsome Ġcharacters Ġare Ġrepeated Ġmore Ġoften Ġthan Ġthose Ġthat Ġwere Ġmade čĊ Ġ* Ġavailable , Ġthen Ġthe Ġword Ġ" ban ana " Ġis Ġdiscarded . čĊ Ġ* čĊ Ġ* ĠScore ĠCount : čĊ Ġ* ĠAfter Ġthe Ġsearch Ġand Ġfiltering Ġhave Ġbeen Ġperformed , Ġyou Ġhave Ġa Ġset Ġof Ġstrings čĊ Ġ* Ġwith Ġall Ġvalid Ġwords . ĠEach Ġword Ġin Ġthe Ġset Ġis Ġtra versed Ġto Ġassign Ġits Ġscore čĊ Ġ* Ġper Ġcharacter Ġafter Ġall Ġwords Ġhave Ġbeen Ġchecked Ġfor Ġa Ġset Ġof Ġpairs Ġof čĊ Ġ* Ġ( word , Ġpoints ). ĠThis Ġset Ġis Ġordered Ġby Ġthe Ġsize Ġof Ġthe Ġwords , Ġfrom Ġsmallest čĊ Ġ* Ġto Ġlargest , Ġand Ġthen Ġthe Ġword Ġwith Ġthe Ġhighest Ġscore Ġis Ġapplicable , Ġif Ġthere čĊ Ġ* Ġis Ġa Ġtie , Ġthe Ġfirst Ġoccurrence Ġof Ġthat Ġvalue Ġis Ġreturned , Ġthat Ġis , Ġthe čĊ Ġ* Ġsmallest Ġword . čĊ Ġ* čĊ Ġ* ĠDisplay ing ĠResults : čĊ Ġ* ĠAfter Ġall Ġthe Ġprocesses Ġhave Ġbeen Ġscheduled , Ġthe Ġword Ġwith Ġthe Ġhighest Ġscore čĊ Ġ* Ġand Ġall Ġthe Ġcharacters Ġthat Ġwere Ġnot Ġused Ġto Ġcompose Ġit Ġare Ġapplied Ġon Ġthe čĊ Ġ* Ġscreen . čĊ Ġ*/ č Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ čĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) čĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) čĊčĊĠĠĠĠĠĠĠ Ġ// Ġinitializes Ġthe Ġtree Ġwith Ġthe Ġvalues Ġpresent Ġin Ġthe Ġdictionary čĊĠĠĠĠĠĠĠ ĠT rie . insert () čĊĠĠĠ Ġ} č Ċ }