Skip to main content

Count Encodings

 1. You are given a string str of digits. (will never start with a 0)

2. You are required to encode the str as per following rules

    1 -> a

    2 -> b

    3 -> c

    ..

    25 -> y

    26 -> z

3. You are required to calculate and print the count of encodings for the string str.


     For 123 -> there are 3 encodings. abc, aw, lc

     For 993 -> there is 1 encoding. iic 

     For 013 -> This is an invalid input. A string starting with 0 will not be passed.

     For 103 -> there is 1 encoding. jc

     For 303 -> there are 0 encodings. But such a string maybe passed. In this case 

     print 0.

Input Format

A string str

Output Format

count of encodings


Constraints

0 < str.length <= 10

Sample Input

123

Sample Output

3


Solution:

import java.io.*;
import java.util.*;

public class Main {

    public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        
        int count = 1, n = str.length();
        
        for(int i=0;i<n;i++){
            int ch = str.charAt(i) - '0';
            if(ch >= 1 && ch <= 9){
                if((ch == 1 || ch == 2) && (i + 1 < n)){
                    int c = str.charAt(i+1) - '0';
                    c += ch*10;
                    if(c >= 10 && ch <= 26)
                        ++count;
                }   
            }else{
                System.out.println(0); 
                return;
            }
        }
        
        System.out.println(count);
    }
}

Comments

Subscribe to Get's Answer by Email