package Ġle e code Ċ Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* Ġ ç»Ļ å®ļ ä¸Ģä¸ª ä»ħ åĮħåĲ« æķ°åŃĹ Ġ 2 - 9 ĠçļĦ åŃĹç¬¦ä¸² ï¼Į è¿ĶåĽŀ æīĢæľī å®ĥ èĥ½ è¡¨ç¤º çļĦ åŃĹ æ¯į ç»ĦåĲĪ ãĢĤ Ċ Ġ* Ġ ç»Ļ åĩº æķ°åŃĹ åĪ° åŃĹ æ¯į çļĦ æĺłå°Ħ å¦Ĥä¸ĭ ï¼Ī ä¸İ çĶµ è¯Ŀ æĮī éĶ® çĽ¸åĲĮ ï¼īãĢĤ æ³¨æĦı Ġ 1 Ġä¸į å¯¹åºĶ ä»»ä½ķ åŃĹ æ¯į ãĢĤ Ċ Ġ* Ġ@ author Ġ Ġdo ive Ċ Ġ* Ġon Ġ 2 0 1 9 / 3 / 1 Ġ 1 0 : 1 8 Ċ Ġ*/ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġfun Ġletter Combin ations ( digits : ĠString ): ĠList < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcombination ( chars : ĠList < CharArray >, Ġindex : ĠInt , Ġlist : ĠMutable List < String >, Ġtemp : ĠString Ġ= Ġ"") : ĠMutable List < String > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġl Ġ= Ġlist ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( index Ġ== Ġchars . last Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ æľĢåĲİ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchars . last (). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl . add ( temp + it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchars [ index ]. forEach Indexed Ġ{ Ġj , Ġc Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl Ġ= Ġ Ġcombination ( chars , Ġindex + 1 , Ġlist , Ġtemp + c ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġl ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( digits . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġempty List () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġchars Ġ= Ġmutable ListOf < CharArray >() ĊĠĠĠĠĠĠĠ Ġdigits . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ' 2 ' Ġ-> Ġchars . add ( char ArrayOf (' a ', Ġ' b ', Ġ' c ')) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ' 3 ' Ġ-> Ġchars . add ( char ArrayOf (' d ', Ġ' e ', Ġ' f ')) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ' 4 ' Ġ-> Ġchars . add ( char ArrayOf (' g ', Ġ' h ', Ġ' i ')) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ' 5 ' Ġ-> Ġchars . add ( char ArrayOf (' j ', Ġ' k ', Ġ' l ')) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ' 6 ' Ġ-> Ġchars . add ( char ArrayOf (' m ', Ġ' n ', Ġ' o ')) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ' 7 ' Ġ-> Ġchars . add ( char ArrayOf (' p ', Ġ' q ', Ġ' r ', Ġ' s ')) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ' 8 ' Ġ-> Ġchars . add ( char ArrayOf (' t ', Ġ' u ', Ġ' v ')) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ' 9 ' Ġ-> Ġchars . add ( char ArrayOf (' w ', Ġ' x ', Ġ' y ', Ġ' z ')) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠLinkedList < String >() ĊĠĠĠĠĠĠĠ Ġcombination ( chars , 0 , result ," ") ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġletter Combin ations (" 2 3 4 "). println () Ċ Ċ }