Question in short:
print The encoded message in how many ways can it be decoded and print each decoded message of evry encoded message
1 represents A ...26 is z and
04 or 06 ... is invalid
27 , 28 INVALID as there is no Alphabhet above 26
EG:
input : 243
eg:
2 4 3 output BDC
24 3 output will be XC
so 2 ways
Input : 22415
Only one single and other will be in pair ( only for odd length string)
Single is first 2
other pair 24, 15
then,
Output :B X O
Or it can be like this
input: 22415
Single is 2nd position '4'
& others are in Pair
pair is 22,15
Output :
V D O
PLEASE HELP ME WITH THE LOGIC THAT IS PROVIDED IF U THINK its sounds logically CORRECT.
DONT USE DYNAMIC PROGRAMMING
I have to get every possible combinations .
See i thought of in this way
First i will take input of the string ,
then i will divide by i which will start from 2 and end at length of the String . Then, I will divide the string by each value of i .
suppose the string is 8 bit long " 22423146"
'i' tells us in how many parts i am dividing the original input
when i completely divides length , then the String is divided in equal parts
suppose when i=2 then the string is divided to 2242 3146 . This is Invalid.
i=4 (4 parts) , then i get this 22 42 31 46 which is a valid Combination.
when i =8 , then I will get only single : 2 2 4 2 3 1 4 6
i=5 (5 parts),
it can be 22 4 2 31 46 ( invalid due to 31 and 46)
or if i shift the space in between 2 and 3 to between 3 and 1 .
then i will get a unique arrangement 22 4 23 14 6 (valid)
Now i can rearrange the spaces anyway in between the parts and place them in between two characters to give arise to a new combination, PROVIDED that two spaces don't sit side by side .
This is what i told is the LOGIC but how will i implement in the code in C or JAVA.
The checking part whether it is invalid or valid (Greater than 26 and any character double or single starting with Zero or not ) and matching the characters single or Double to Corresponding Alphabhet ---- that i will do it .
I also know how to extract characters by using charAt(i) ; and I also Know Recursion .
But how to introduce space and how to drift the space from its initial postion to another new position to get another new combination when (length % i !=0) , and how will I divide the string to ' i ' Parts , How to put all of these together . IT's an uphill task for me .
UPDATE:
I have written the code for how to divide string into i equal parts .i has to be a divisor of the length .
where i is divisor of ANY length of input string .
U just provide the code for the last bit(remove elements from array) and u once check the logic for parts where i is divisor of ANY length of input string . I think this is the one portion of counting the valid ways of DECODING.FOR i = not divisor I am thinking on that
@Dr.Peterson @JeffM @lex
print The encoded message in how many ways can it be decoded and print each decoded message of evry encoded message
1 represents A ...26 is z and
04 or 06 ... is invalid
27 , 28 INVALID as there is no Alphabhet above 26
EG:
input : 243
eg:
2 4 3 output BDC
24 3 output will be XC
so 2 ways
Input : 22415
Only one single and other will be in pair ( only for odd length string)
Single is first 2
other pair 24, 15
then,
Output :B X O
Or it can be like this
input: 22415
Single is 2nd position '4'
& others are in Pair
pair is 22,15
Output :
V D O
PLEASE HELP ME WITH THE LOGIC THAT IS PROVIDED IF U THINK its sounds logically CORRECT.
DONT USE DYNAMIC PROGRAMMING
I have to get every possible combinations .
See i thought of in this way
First i will take input of the string ,
then i will divide by i which will start from 2 and end at length of the String . Then, I will divide the string by each value of i .
suppose the string is 8 bit long " 22423146"
'i' tells us in how many parts i am dividing the original input
when i completely divides length , then the String is divided in equal parts
suppose when i=2 then the string is divided to 2242 3146 . This is Invalid.
i=4 (4 parts) , then i get this 22 42 31 46 which is a valid Combination.
when i =8 , then I will get only single : 2 2 4 2 3 1 4 6
- BUt when i is not a divisor of length '8' (i=3,5,7) then
i=5 (5 parts),
it can be 22 4 2 31 46 ( invalid due to 31 and 46)
or if i shift the space in between 2 and 3 to between 3 and 1 .
then i will get a unique arrangement 22 4 23 14 6 (valid)
Now i can rearrange the spaces anyway in between the parts and place them in between two characters to give arise to a new combination, PROVIDED that two spaces don't sit side by side .
This is what i told is the LOGIC but how will i implement in the code in C or JAVA.
The checking part whether it is invalid or valid (Greater than 26 and any character double or single starting with Zero or not ) and matching the characters single or Double to Corresponding Alphabhet ---- that i will do it .
I also know how to extract characters by using charAt(i) ; and I also Know Recursion .
But how to introduce space and how to drift the space from its initial postion to another new position to get another new combination when (length % i !=0) , and how will I divide the string to ' i ' Parts , How to put all of these together . IT's an uphill task for me .
UPDATE:
I have written the code for how to divide string into i equal parts .i has to be a divisor of the length .
where i is divisor of ANY length of input string .
Java:
public class Main{
public static void main(String[] args){
int i=2, j=0;
for(i=2; i< = s.length() ; i=i+2 )
{
String firsthalf=" ";
int index=0;
String s="15641123222211112222";
int len=s.length();
String ar[] = new String ;
int partpoint = len/i;
int control=partpoint;
for(j=0; j<len ; j=j+control)
{
for(i=j; i<partpoint ; i++)
{
char c=s.charAt(i);
firsthalf = firsthalf + c;
}
ar[index]= firsthalf ;
firsthalf= " ";
index= index + 1;
partpoint=partpoint + control;
}
for(i=0; i<ar.length ; i++)
{
System.out.println(ar); / here i am just printing the parts /
System.out.println();
String s3 = ar; .......
then i am not writing the particular fragment of the code
/ picking up the first string from array for a specific value of i ,then I will check whether it is valid or not ; greater than 26 or starting with 0 or not? is in pair or single ....This will happen with all the parts of the input divided to for each value of i .
If the checking is right , then it will be counted as one way .
I have the code in my editor but not writing it here /
}end of for loop
System.out.println();
System.out.println();
ar= " " ; / here my idea is to remove all the elements from the array so that in the next loop when i gets a new value inside ar new set of parts is being inserted.
But how to remove all the existing elements from the array . What is the code./
}
}
}
U just provide the code for the last bit(remove elements from array) and u once check the logic for parts where i is divisor of ANY length of input string . I think this is the one portion of counting the valid ways of DECODING.FOR i = not divisor I am thinking on that
@Dr.Peterson @JeffM @lex
Last edited: