// ç»Ļ å®ļ ä¸Ģä¸ª ä»ħ åĮħåĲ« æķ°åŃĹ Ġ 2 - 9 ĠçļĦ åŃĹç¬¦ä¸² ï¼Į è¿ĶåĽŀ æīĢæľī å®ĥ èĥ½ è¡¨ç¤º çļĦ åŃĹ æ¯į ç»ĦåĲĪ ãĢĤ çŃĶ æ¡Ī åı¯ä»¥ æĮī Ġ ä»»æĦı é¡ºåºı Ġè¿ĶåĽŀ ãĢĤ Ġ Ċ // Ċ // Ġ ç»Ļ åĩº æķ°åŃĹ åĪ° åŃĹ æ¯į çļĦ æĺłå°Ħ å¦Ĥä¸ĭ ï¼Ī ä¸İ çĶµ è¯Ŀ æĮī éĶ® çĽ¸åĲĮ ï¼īãĢĤ æ³¨æĦı Ġ 1 Ġä¸į å¯¹åºĶ ä»»ä½ķ åŃĹ æ¯į ãĢĤ Ġ Ċ // Ċ // Ġ Ċ // Ċ // Ġ Ċ // Ċ // Ġ ç¤ºä¾ĭ Ġ 1 ï¼ļ Ġ Ċ // Ċ // Ġ Ċ // è¾ĵåħ¥ ï¼ļ digits Ġ= Ġ" 2 3 " Ċ // è¾ĵåĩº ï¼ļ [" ad "," ae "," af "," bd "," be "," bf "," cd "," ce "," cf "] Ċ // Ġ Ċ // Ċ // Ġ ç¤ºä¾ĭ Ġ 2 ï¼ļ Ġ Ċ // Ċ // Ġ Ċ // è¾ĵåħ¥ ï¼ļ digits Ġ= Ġ"" Ċ // è¾ĵåĩº ï¼ļ [] Ċ // Ġ Ċ // Ċ // Ġ ç¤ºä¾ĭ Ġ 3 ï¼ļ Ġ Ċ // Ċ // Ġ Ċ // è¾ĵåħ¥ ï¼ļ digits Ġ= Ġ" 2 " Ċ // è¾ĵåĩº ï¼ļ [" a "," b "," c "] Ċ // Ġ Ċ // Ċ // Ġ Ċ // Ċ // ĠæıĲ ç¤º ï¼ļ Ġ Ċ // Ċ // Ġ Ċ // Ġ 0 Ġ<= Ġdigits . length Ġ<= Ġ 4 Ġ Ċ // Ġdigits [ i ] Ġæĺ¯ èĮĥåĽ´ Ġ[' 2 ', Ġ' 9 '] ĠçļĦ ä¸Ģä¸ª æķ°åŃĹ ãĢĤ Ġ Ċ // Ġ Ċ // ĠRelated ĠTop ics Ġæ· ± åº¦ ä¼ĺåħĪ æĲľç´¢ Ġ éĢĴ å½Ĵ Ġ åŃĹç¬¦ä¸² Ġ åĽŀ æº ¯ ç®Ĺæ³ķ Ġ Ċ // ĠðŁĳį Ġ 1 3 2 6 ĠðŁĳ İ Ġ 0 ĊĊ Ċ // leetcode Ġsubmit Ġregion Ġbegin ( Pro hibit Ġmodification Ġand Ġdeletion ) Ċ class ĠSolution Ġ{ ĊĠĠĠ Ġfun Ġletter Combin ations ( digits : ĠString ): ĠList < String > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif ( digits . isEmpty ()) Ġreturn ĠArrayList < String >() ĊĊĠĠĠĠĠĠĠ Ġvar Ġmap Ġ= ĠHashMap < Char , String >() ĊĠĠĠĠĠĠĠ Ġmap [' 2 '] Ġ= Ġ Ġ" abc " ĊĠĠĠĠĠĠĠ Ġmap [' 3 '] Ġ= Ġ Ġ" def " ĊĠĠĠĠĠĠĠ Ġmap [' 4 '] Ġ= Ġ Ġ" ghi " ĊĠĠĠĠĠĠĠ Ġmap [' 5 '] Ġ= Ġ Ġ" j kl " ĊĠĠĠĠĠĠĠ Ġmap [' 6 '] Ġ= Ġ Ġ" m no " ĊĠĠĠĠĠĠĠ Ġmap [' 7 '] Ġ= Ġ Ġ" pq rs " ĊĠĠĠĠĠĠĠ Ġmap [' 8 '] Ġ= Ġ Ġ" t uv " ĊĠĠĠĠĠĠĠ Ġmap [' 9 '] Ġ= Ġ Ġ" w xyz " ĊĊĠĠĠĠĠĠĠ Ġ// è¿ĶåĽŀ åĢ¼ ĊĠĠĠĠĠĠĠ Ġvar Ġres Ġ= ĠArrayList < String >() ĊĊĠĠĠĠĠĠĠ Ġdeal Digits ( 0 ," ", digits , map , res ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġres ĊĊĠĠĠ Ġ} ĊĠĠĠ Ġ// éĢĴ å½Ĵ éģįåİĨ èİ·åıĸ ĊĠĠĠ Ġprivate Ġfun Ġdeal Digits ( level : ĠInt , Ġstr : ĠString , Ġdigits : ĠString , Ġmap : Ġjava . util . HashMap < Char , ĠString >, Ġres : Ġjava . util . ArrayList < String >) Ġ{ ĊĠĠĠĠĠĠĠĠ Ġ// éĢĴ å½Ĵ éĢĢåĩº æĿ¡ä»¶ ĊĠĠĠĠĠĠĠĠ Ġif Ġ( level Ġ== Ġdigits . length ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġres . add ( str ) ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġ// éĢ»è¾ĳ å¤ĦçĲĨ ï¼Į è¿Ľåħ¥ ä¸ĭ å±Ĥ å¾ªçİ¯ ĊĠĠĠĠĠĠĠĠ Ġ// èİ·åıĸ å½ĵåīį Ġkey ĊĠĠĠĠĠĠĠĠ Ġvar Ġkey Ġ= Ġdigits [ level ] ĊĠĠĠĠĠĠĠĠ Ġ// èİ·åıĸ key Ġ å¯¹åºĶçļĦ Ġ åŃĹ æ¯į åĢ¼ ĊĠĠĠĠĠĠĠĠ Ġvar Ġstr Digits Ġ= Ġmap [ key ] !! ĊĠĠĠĠĠĠĠĠ Ġ// å¾ªçİ¯ ç»ĦåĲĪ ĊĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġstr Digits . indices ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeal Digits ( level + 1 , str + str Digits [ i ], digits , map , res ) ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġ// æķ°æį® reverse ĊĠĠĠ Ġ} Ċ } Ċ // leetcode Ġsubmit Ġregion Ġend ( Pro hibit Ġmodification Ġand Ġdeletion ) Ċ