Skip to main content

DECODE WAYS - LEETCODE PROBLEM 91

 A message containing letters from A-Z is being encoded to numbers using the following mapping:

'A' -> 1
'B' -> 2
...
'Z' -> 26

Given a non-empty string containing only digits, determine the total number of ways to decode it.

Example 1:

Input: "12"
Output: 2
Explanation: It could be decoded as "AB" (1 2) or "L" (12).

Example 2:

Input: "226"
Output: 3
Explanation: It could be decoded as "BZ" (2 26), "VF" (22 6), or "BBF" (2 2 6).
class Solution {
    public int numDecodings(String s) {
        
        int ways=0;
        ways=countDecoding(s.toCharArray(),s.length());
        return ways;
    }
    
    int countDecoding(char[] digits, int n){

       // System.out.println(" digits "+disgits[0]);
              // for base condition "01123" should return 0    
        
                 // base cases 
    if (n == 0 || (n == 1 && digits[0]!='0')) 
       return 1; 
        
    
        
    if (digits[0]=='0')   { 
         return 0; 
    }
    

   
     // Initialize count 
    int count = 0;  
    
    // If the last digit is not 0, then  
    // last digit must add to 
    // the number of words 
    
    if(digits[n - 1] > '0') 
    count = countDecoding(digits, n - 1); 
    
    
     // If the last two digits form a number 
    // smaller than or equal to 26, 
    // then consider last two digits and recur 
    if (digits[n - 2] == '1' || (digits[n - 2] == '2' && digits[n - 1] < '7')) 
    count += countDecoding(digits, n - 2); 
  
    return count; 
}
}




https://leetcode.com/problems/decode-ways/

Comments

.

Popular posts from this blog

TWO SUM -LEET CODE PROBLEM 1

   https://leetcode.com/problems/two-sum/ Given an array of integers  nums  and an integer  target , return  indices of the two numbers such that they add up to  target . You may assume that each input would have  exactly  one solution , and you may not use the  same  element twice. You can return the answer in any order.   Example 1: Input: nums = [2,7,11,15], target = 9 Output: [0,1] Output: Because nums[0] + nums[1] == 9, we return [0, 1]. Example 2: Input: nums = [3,2,4], target = 6 Output: [1,2] Example 3: Input: nums = [3,3], target = 6 Output: [0,1] class Solution {     public int[] twoSum(int[] nums, int target) {              HashMap<Integer,Integer> map=new HashMap<Integer,Integer>();                  for(int i=0;i<nums.length;i++){                      ...

Best LeetCode Lists for Interviews

Here is a list of some of the best questions asked in interviews:-  Must do 75 https://leetcode.com/list/5hkn6wze/ Must do 60  https://leetcode.com/list/5eie1aqd/ Must do medium:-  https://leetcode.com/list/5xaelz7g/ Must do Easy:-   https://leetcode.com/list/5r7rxpr1/ Graph:-  https://leetcode.com/list/x18ervrd/  Dynamic Programming:-    https://leetcode.com/list/x14z0dxr/  FaceBook interviews:- https://leetcode.com/list/xyu98pv6/  Amazon Interviews:-  https://leetcode.com/list/5hkniyf7/  Google Interviews:- https://leetcode.com/list/xyu9xfo1/ https://github.com/nazarmubeen/TopProblems/blob/master/README.md