help in understanding this problem (beginner)



Dear group,
Following problem description is not reachable for me understand. Can
any one guide me to the related topics that makes me to understand the
following problem. This is not a home work. I just wanted to get started
in the coding contest. I just been blinking for the whole day and
I could not get through a hold thanks for any help.

_______________________________

Problem Statement for BinaryCode
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Let's say you have a binary string such as the following:

011100011

One way to encrypt this string is to add to each digit the sum of its
adjacent digits. For example, the above string would become:

123210122

In particular, if P is the original string, and Q is the encrypted
string, then Q[i] = P[i-1] + P[i] + P[i+1] for all digit positions i.
Characters off the left and right edges of the string are treated as
zeroes.

An encrypted string given to you in this format can be decoded as follows
(using 123210122 as an example):

1. Assume P[0] = 0.
2. Because Q[0] = P[0] + P[1] = 0 + P[1] = 1, we know that P[1] = 1.
3. Because Q[1] = P[0] + P[1] + P[2] = 0 + 1 + P[2] = 2, we know that
P[2] = 1.
4. Because Q[2] = P[1] + P[2] + P[3] = 1 + 1 + P[3] = 3, we know that
P[3] = 1.
5. Repeating these steps gives us P[4] = 0, P[5] = 0, P[6] = 0, P[7] =
1, and P[8] = 1.
6. We check our work by noting that Q[8] = P[7] + P[8] = 1 + 1 = 2.
Since this equation works out, we are finished, and we have
recovered one possible original string.

Now we repeat the process, assuming the opposite about P[0]:

1. Assume P[0] = 1.
2. Because Q[0] = P[0] + P[1] = 1 + P[1] = 0, we know that P[1] = 0.
3. Because Q[1] = P[0] + P[1] + P[2] = 1 + 0 + P[2] = 2, we know that
P[2] = 1.
4. Now note that Q[2] = P[1] + P[2] + P[3] = 0 + 1 + P[3] = 3, which
leads us to the conclusion that P[3] = 2. However, this violates
the fact that each character in the original string must be '0' or
'1'. Therefore, there exists no such original string P where the
first digit is '1'.

Note that this algorithm produces at most two decodings for any given
encrypted string. There can never be more than one possible way to decode
a string once the first binary digit is set.

Given a String message, containing the encrypted string, return a
String[] with exactly two elements. The first element should contain the
decrypted string assuming the first character is '0'; the second element
should assume the first character is '1'. If one of the tests fails,
return the string "NONE" in its place. For the above example, you should
return {"011100011", "NONE"}.

Definition
^^^^^^^^^^
Class: BinaryCode
Method: decode
Parameters: String
Returns: String[]
Method signature: String[] decode(String message)
(be sure your method is public)


Constraints
- message will contain between 1 and 50 characters, inclusive.
- Each character in message will be either '0', '1', '2', or '3'.

Examples
0) "123210122"

Returns: { "011100011", "NONE" }

The example from above.

1) "11"

Returns: { "01", "10" }

We know that one of the digits must be '1', and the other must be
'0'. We return both cases.

2) "22111"

Returns: { "NONE", "11001" }

Since the first digit of the encrypted string is '2', the first
two digits of the original string must be '1'. Our test fails when
we try to assume that P[0] = 0.

3) "123210120"

Returns: { "NONE", "NONE" }

This is the same as the first example, but the rightmost digit has
been changed to something inconsistent with the rest of the
original string. No solutions are possible.

4) "3"

Returns: { "NONE", "NONE" }


5) "12221112222221112221111111112221111"

Returns:
{ "01101001101101001101001001001101001",
"10110010110110010110010010010110010" }
_______________________________

.



Relevant Pages

  • Re: writing get_script as an external routine callable by C
    ... I _STRONGLY_ suggest to attend a Perl class or a self-study course where ... If you mean "begins with a digit" as you said above ... Case 2 matches if the beginning of the string is followed by 1 or more ... If you put the two Bushs together in their over seven years of their two ...
    (comp.lang.perl.misc)
  • Re: Sorted Fixed Length String
    ... >I have a String of Numerical Digits Created Using Concatenate. ... >The Strings could be from 6 Characters in Length to 11 Characters in ... >The Least Characters in a String with a Digit GREATER than 1 can ONLY be ... Dim str As String ...
    (microsoft.public.excel.programming)
  • Re: Pi as the Mother Number
    ... For example if we find our 100-digit string starting at the ... 37th digit of pi, we can just say, go to the 37th digit of pi and print the ... problem with using this principle to compress numbers is the problem of the ... Foundation of Mathematics, first to understand the difference between ...
    (sci.math)
  • Re: writing get_script as an external routine callable by C
    ... I _STRONGLY_ suggest to attend a Perl class or a self-study course where ... If you mean "begins with a digit" as you said above ... used as delimiters, therefore it doesn't show up in the FAQ. ... Case 2 matches if the beginning of the string is followed by 1 or more ...
    (comp.lang.perl.misc)
  • Re: a challenge
    ... // if the remainder isn't zero. ... // recursively to convert it to a string ... // of the hundred's digit (there can be only ...
    (alt.lang.asm)