Ninja and characters

Easy
0/40
Average time to solve is 15m
18 upvotes
Asked in companies
Nagarro SoftwareInnostax Software LabsWatchGuard Technologies

Problem statement

Ninja loves playing with characters. So one day, he wants to arrange a few characters in the ‘N’ number of rows. The first row contains 1 character, the second row has two characters, the third row has 3 characters, and so on.

Ninja starts placing characters in increasing order, with an absolute difference of 1, starting from A and can go up to Z only.

You are given an integer ‘N’ denoting the given number of rows. Can you print the pattern Ninja wants to create?

Pattern for N = 3

A
BB
CCC
Detailed explanation ( Input/output format, Notes, Images )
Input Format:
The first line contains ‘T’, denoting the number of test cases.

Each test case contains a single integer ‘N’, denoting the number of rows.
Output Format:
For each test case, print 'N' strings denoting the required pattern in the following ‘N’ lines.
Note:
You are not required to print the expected output. It has already been taken care of. Just implement the function.
Constraints:
1 <= T <= 10
1 <= N <= 26

Time Limit: 1 sec
Sample Input 1 :
2
3
4
Sample Output 1 :
A
BB
CCC
A
BB
CCC
DDDD
Explanation for Sample Input 1 :
In the first test case, we are required to create a pattern consisting of 3 lines. First-line contains ‘A’. From the second line, we have to place a character one more than the previous value. So we place ‘B’.We put 2 ‘B’ and move to the following line because this line will contain only 2 elements. In the following line, we have to place 3 characters, so we place 3 ‘C’.

 In the second test case, we are required to create a pattern consisting of 4 lines. First-line contains ‘A’. From the second line, we have to place a character one more than the previous value. So we place ‘B’.We put 2 ‘B’ and move to the following line because this line will contain only 2 elements. In the following line, we have to place 3 characters, so we place 3 ‘C’.In the next line, there will be 4 ‘D’.   
Sample Input 2 :
2
7
2
Sample Output 2 :
A
BB
CCC
DDDD
EEEEE
FFFFFF
GGGGGGG
A
BB
Hint

 Can you print one line at a time?

Approaches (1)
Brute force

The key here is to traverse all the lines sequentially, and for each line, we print the required character at the given index.


 

The steps are as follows:

  • We define an ‘ans’ matrix to store the final pattern.
  • We initialize a variable ‘k’ to 0, which will be the starting value for the pattern.
  • We will iterate over all the rows, i.e., i = 0 to i = N - 1:
    • We will run a for loop starting from j = 0 with the condition j is less than or equals to i.
      • We will insert ‘k’ in the matrix ‘ans’.
      • We will increment the value of k.
  • We will return the matrix ‘ans’ as the final answer.
Time Complexity

O(N*N), where N is the number of lines.

 

As we are printing every character of each line one at a time. The first line contains one character, the second line two, and so on. Hence the time required to print N lines is 1 + 2 + 3 + … + N = N * (N - 1)/2, which is equivalent to O(N*N).

Hence the overall time complexity is O(N*N). 

Space Complexity

O(N*N), where N is the number of lines.

 

We are using a matrix to store the pattern. Hence, the overall space complexity is O(N*N).

Code Solution
(100% EXP penalty)
Ninja and characters
Full screen
Console