| 
                                    
                                    
                                    
                                    
                                    
                                    
                                    
                                     
                                        
                                     
                                    
                                        
                                        - 博士后
 
                                        
                                        - 2699998
 
                                        - 3587
 
                                        - 11
 
                                        - 2173 朵
 
                                        - 7386 个
 
                                        - 1021 个
 
                                        - 91120
 
                                        - 2014-08-23
 
                                     
                                    
                                    
                                    
                                 | 
                                
                                    
                                        
                                            
                                                
                                                1#
                                                
                                            
                                        
                                        
                                            
                                                
                                                
                                                t
                                                T
                                             
                                            
                                            
                                            
                                                
                                                发表于 2022-07-02 22:40
                                            
                                                                                        
                                            | 
                                            
                                            
                                            |只看楼主
                                            
                                         
                                     
                                    
                                    
                
                
                
                
                    
                    
                    
                   
                    
                        
                        
                        题目描述 有一种将字母编码成数字的方式:‘a’->1, ‘b->2’, … , ‘z->26’。 我们把一个字符串编码成一串数字,再考虑逆向编译成字符串。 由于没有分隔符,数字编码成字母可能有多种编译结果,例如 11 既可以看做是两个 ‘a’ 也可以看做是一个 ‘k’ 。但 10 只可能是 ‘j’ ,因为 0 不能编译成任何结果。 现在给一串数字,返回有多少种可能的译码结果。 数据范围:字符串长度满足 0 <n≤90
  【示例1】 输入:"12" 返回值:2 说明:2种可能的译码结果("ab" 或"l")
  【示例2】 输入:"31717126241541717" 返回值:192 说明:192种可能的译码结果 
  题目难度:中等 题目来源:把数字翻译成字符串 题目交流:  584781753
 
  |  
 - Import "SmAssert.dll"
  
  
- Function 数字翻译成字符串(数字)
  
-     // 您的代码写在这里
  
- End Function
  
  
  
- SmAssert 数字翻译成字符串("12") = 2
  
- SmAssert 数字翻译成字符串("31717126241541717") = 192
  
  复制代码 参考题解- Import "SmAssert.dll"
  
  
- Function 数字翻译成字符串(数字)
  
-     
  
-     '【作者】:神梦无痕
  
-     '【QQ】:1042207232
  
-     '【Q群】:584781753
  
-     
  
-     Dim i, dp
  
-     
  
-     ' 排除0
  
-     If 数字 = 0 Then 数字翻译成字符串 = 0 : Exit Function
  
-     ' 10 和 20 和个位数只有 1 种情况
  
-     If 数字 = 10 Or 数字 = 20 Or Len(数字) = 1 Then 数字翻译成字符串 = 1 : Exit Function
  
-     
  
-     ' 出现无法编译则为 0 种情况
  
-     For i = 1 To Len(数字)
  
-         If Mid(数字, i, 1) = 0 Then 
  
-             If Mid(数字, i - 1, 1) <> "1" And Mid(数字, i - 1, 1) <> "2" Then 
  
-                 数字翻译成字符串 = 0
  
-                 Exit Function
  
-             End If
  
-         End If
  
-     Next
  
-     
  
-     ' 数组初始化为 1
  
-     dp = Split(Space(Len(数字) + 1), " ")
  
-     For i = 0 To Len(数字)
  
-         dp(i) = 1
  
-     Next
  
-     For i = 2 To Len(数字)
  
-         If (Mid(数字, i - 2 + 1, 1) = "1" And Mid(数字, i - 1 + 1, 1) <> "0") Or _
  
-            (Mid(数字, i - 2 + 1, 1) = "2" And Mid(数字, i - 1 + 1, 1) > "0" And Mid(数字, i - 1 + 1, 1) < "7") Then 
  
-            dp(i) = dp(i - 1) + dp(i - 2)
  
-         Else 
  
-             dp(i) = dp(i-1)
  
-         End If
  
-     Next
  
-     
  
-     数字翻译成字符串 = dp(Len(数字))
  
- End Function
  
  
  
- SmAssert 数字翻译成字符串("12") = 2
  
- SmAssert 数字翻译成字符串("31717126241541717") = 192
  
  复制代码 插件下载【插件】神梦断言插件 SmAssert.dll,帮助开发者发现业务逻辑错误  
                        
                     
                    
                    
                    
                    
                    
                    
                    
                    
                        
                        
                     
                     |