@@ -113,21 +113,19 @@ impl WordSegmenter {
113113 suffix_words. insert ( 0 , prefix) ;
114114 best_candidate = ( prefix_score + suffix_score, suffix_words) ;
115115 }
116+ } else if suffix. is_empty ( ) {
117+ if best_candidate. 0 < prefix_score {
118+ best_candidate = ( prefix_score, vec ! [ prefix] ) ;
119+ }
120+ memo. insert ( ( suffix, prefix) , ( 0.0 , Vec :: new ( ) ) ) ;
116121 } else {
117- if suffix. is_empty ( ) {
118- if best_candidate. 0 < prefix_score {
119- best_candidate = ( prefix_score, vec ! [ prefix] ) ;
120- }
121- memo. insert ( ( suffix, prefix) , ( 0.0 , Vec :: new ( ) ) ) ;
122- } else {
123- let ( suffix_score, suffix_words) = self . search ( memo, suffix, prefix) ;
124- if best_candidate. 0 < prefix_score + suffix_score {
125- let mut suffix_words = suffix_words. clone ( ) ;
126- suffix_words. insert ( 0 , prefix) ;
127- best_candidate = ( prefix_score + suffix_score, suffix_words) ;
128- }
129- memo. insert ( ( suffix, prefix) , ( suffix_score, suffix_words) ) ;
122+ let ( suffix_score, suffix_words) = self . search ( memo, suffix, prefix) ;
123+ if best_candidate. 0 < prefix_score + suffix_score {
124+ let mut suffix_words = suffix_words. clone ( ) ;
125+ suffix_words. insert ( 0 , prefix) ;
126+ best_candidate = ( prefix_score + suffix_score, suffix_words) ;
130127 }
128+ memo. insert ( ( suffix, prefix) , ( suffix_score, suffix_words) ) ;
131129 }
132130 }
133131
0 commit comments