# Padovan String - Aspiration 2020 question in 2012 in Java

Problem Description

A Padovan string P(n) for a natural number n is defined as:

P(0) = ‘X’

P(1) = ‘Y’

P(2) = ‘Z’

P(n) = P(n-2) + P(n-3), n>2
where + denotes string concatenation.
For a string of the characters ‘X’ , ‘Y’ and ‘Z’ only, and given value of n, write a program that counts the number of occurrences of the string in the n-th Padovan string P(n).

An example is given below.

For n = 6 and the string ZY, the program should count the occurrences of ZY in P(6).

P(0) = ‘X’

P(1) = ‘Y’

P(2) = ‘Z’

P(n) = P(n-2) + P(n-3), n>2

P(3) = P(1)+P(0)

P(3) = YX

P(4) = P(2)+P(1)

P(4) = ZY

P(5) = P(3)+P(2)

P(5) = YXZ

P(6) = P(4)+P(3)

P(6) = ZYYX

So, the number of occurrences of the string ZY in P(6) is 1.
Instruction to work with Open PBT Client:
1. Specify the work directory path in the 'Work directory Path' field. The path should correspond to your solution Work directory.
3. You will find the problem directories containing:
o problem.h file
o problem.c file
4. Code the solution in .c file inside the problem directory
Step 1:
• Implement your logic in function int stringOccurrences(int n, char* str)
• int n :n is an integer represents n(th) for which full main string has to formed, from which occurrence of string str has to be found.
• char* str :str is a string represents sub string whose occurrence has to be found in the main string.
• You can create more functions if required, but those functions should be in the same file.

Step 2:
In your solution keep in mind the following constraints:.
1. In this problem you have to write a program that counts the number of occurrences of the string in the n-th Padovan string P(n).
2. Padovan formula is P(n) = P(n-2) + P(n-3) where n>2 and n is the integer.
3. In the above Padovan formula + sign means string concatenation.
4. For the Padovan formula value of P(0),P(1) and P(2) is given. You have to use those value only.
5. n should not be greater than 40 otherwise return -1
6. string str should be consist of only X,Y and Z in upper case otherwise return -1
The Prototype of the function is
int stringOccurrences(int n, char* str)
This function takes following arguments.
• n is the value for which full main string has to formed, from which occurrence of string str has to be found.
• str represents sub string whose occurrence has to be found in the main string.
• This function returns a number of occurrence of string str in the main string.
The constraints are:
1. n should not be greater than 40 otherwise return -1
2. string str should be consist of only X,Y and Z in upper case otherwise return -1
Example 1
Input
________________________________________
int n = 6
string str = ZY
Output
________________________________________
1
Explanation : This question is explained in problem description.
Example 2
Input
________________________________________
int n = 6
String str = ZYmm
Output
________________________________________
-1
Explanation :
String str is containing character other than X, Z and Y.
Example 3
Input
________________________________________
int n = 8
String str = XZ
Output
________________________________________
1

```public class PadovanString
{

public int stringOccurrences(int n, String str)
{
if (n >= 40)
return -1;
if (str.replaceAll("X|Y|Z", "").length() > 0)
return -1;

System.out.println(res);

return (res.length() - res.replaceAll(str, "").length())/(str.length());
}