package Ġcom . eric . leetcode Ċ Ċ class ĠLetter Tile Po ss ibilities Ġ{ ĊĠĠĠ Ġfun Ġnum Tile Po ss ibilities ( tiles : ĠString ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvisit Ġ= ĠBoolean Array ( tiles . length ) Ġ{ false } ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmutable Set Of < String >() ĊĠĠĠĠĠĠĠ Ġdfs ( visit , Ġtiles , Ġ"", Ġresult ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult . size Ġ- Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdfs ( visit : ĠBoolean Array , Ġtiles : ĠString , Ġseries : ĠString , Ġresult : ĠMutable Set < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( index Ġin Ġvisit . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( visit [ index ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvisit [ index ] Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdfs ( visit , Ġtiles , Ġseries Ġ+ Ġtiles [ index ], Ġresult ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvisit [ index ] Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġresult . add ( series ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġval Ġletter Tile Po ss ibilities Ġ= ĠLetter Tile Po ss ibilities () ĊĠĠĠ Ġprint ( letter Tile Po ss ibilities . num Tile Po ss ibilities (" VV ")) Ċ }