Please login

Prime

Prepinsta Prime

Video courses for company/skill based Preparation

(Check all courses)
Get Prime Video
Prime

Prepinsta Prime

Purchase mock tests for company/skill building

(Check all mocks)
Get Prime mock

Wipro NLTH Coding Sample Question- 2

PrepSter Wipro NLTH Coding Question – 2

Print a given matrix in spiral form

Ques: Given a 2D array, print it in spiral form. See the following examples.

NOTE:-  Please comment down the code in other languages as well below .

Input:
        1    2   3   4
        5    6   7   8
        9   10  11  12
        13  14  15  16
Output: 
1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10 
Input:
        1   2   3   4  5   6
        7   8   9  10  11  12
        13  14  15 16  17  18
Output: 
1 2 3 4 5 6 12 18 17 16 15 14 13 7 8 9 10 11
#include <stdio.h>
#define R 3
#define C 6

void spiralPrint (int m, int n, int a[R][C])
{
  int i, k = 0, l = 0;

/* k - starting row index 
m - ending row index 
l - starting column index 
n - ending column index 
i - iterator 
*/

  while (k < m && l < n)
    {
/* Print the first row from the remaining rows */
      for (i = l; i < n; ++i)
	{
	  printf ("%d ", a[k][i]);
	}
      k++;

/* Print the last column from the remaining columns */
      for (i = k; i < m; ++i)
	{
	  printf ("%d ", a[i][n - 1]);
	}
      n--;

/* Print the last row from the remaining rows */
      if (k < m) { for (i = n - 1; i >= l; --i)
	    {
	      printf ("%d ", a[m - 1][i]);
	    }
	  m--;
	}

/* Print the first column from the remaining columns */
      if (l < n) { for (i = m - 1; i >= k; --i)
	    {
	      printf ("%d ", a[i][l]);
	    }
	  l++;
	}
  }
}

/* Driver program to test above functions */
int main ()
{
  int a[R][C] = { {1, 2, 3, 4, 5, 6},
  {7, 8, 9, 10, 11, 12},
  {13, 14, 15, 16, 17, 18}
  };

  spiralPrint (R, C, a);
  return 0;
}
#include <bits/stdc++.h> 
using namespace std; 
#define R 3 
#define C 6 

void spiralPrint(int m, int n, int a[R][C]) 
{ 
	int i, k = 0, l = 0; 

	/* k - starting row index 
		m - ending row index 
		l - starting column index 
		n - ending column index 
		i - iterator 
	*/

	while (k < m && l < n) { 
		/* Print the first row from 
			the remaining rows */
		for (i = l; i < n; ++i) { 
			cout << a[k][i] << " "; 
		} 
		k++; 

		/* Print the last column 
		from the remaining columns */
		for (i = k; i < m; ++i) { 
			cout << a[i][n - 1] << " "; 
		} 
		n--; 

		/* Print the last row from 
				the remaining rows */
		if (k < m) { for (i = n - 1; i >= l; --i) { 
				cout << a[m - 1][i] << " "; 
			} 
			m--; 
		} 

		/* Print the first column from 
				the remaining columns */
		if (l < n) { for (i = m - 1; i >= k; --i) { 
				cout << a[i][l] << " "; 
			} 
			l++; 
		} 
	} 
} 

/* Driver program to test above functions */
int main() 
{ 
	int a[R][C] = { { 1, 2, 3, 4, 5, 6 }, 
					{ 7, 8, 9, 10, 11, 12 }, 
					{ 13, 14, 15, 16, 17, 18 } }; 

	spiralPrint(R, C, a); 
	return 0; 
} 
// Java program to print a given matrix in spiral form 
import java.io.*;

class PrepInsta
{
// Function print matrix in spiral form 
  static void spiralPrint (int m, int n, int a[][])
  {
    int i, k = 0, l = 0;
/* k - starting row index 
m - ending row index 
l - starting column index 
n - ending column index 
i - iterator 
*/

    while (k < m && l < n)
      {
// Print the first row from the remaining rows 
	for (i = l; i < n; ++i)
	  {
	    System.out.print (a[k][i] + " ");
	  }
	k++;

// Print the last column from the remaining columns 
	for (i = k; i < m; ++i)
	  {
	    System.out.print (a[i][n - 1] + " ");
	  }
	n--;

// Print the last row from the remaining rows */ 
	if (k < m)
	  {
	    for (i = n - 1; i >= l; --i)
	      {
		System.out.print (a[m - 1][i] + " ");
	      }
	    m--;
	  }

// Print the first column from the remaining columns */ 
	if (l < n)
	  {
	    for (i = m - 1; i >= k; --i)
	      {
		System.out.print (a[i][l] + " ");
	      }
	    l++;
	  }
      }
  }

// driver program 
  public static void main (String[]args)
  {
    int R = 3;
    int C = 6;
    int a[][] = { {1, 2, 3, 4, 5, 6},
    {7, 8, 9, 10, 11, 12},
    {13, 14, 15, 16, 17, 18}
    };
    spiralPrint (R, C, a);
  }
}

#Python3 program to print
#given matrix in spiral form
def
spiralPrint (m, n, a):
  k = 0;
l = 0 '' ' k - starting row index 
m - ending row index 
l - starting column index 
n - ending column index 
i - iterator ' '' while (k < m and l < n)
:

#Print the first row from
#the remaining rows
  for i
  in range (l, n):
    print (a[k][i], end = " ") k += 1
#Print the last column from
#the remaining columns
      for i
    in range (k, m):
      print (a[i][n - 1], end = " ") n -= 1
#Print the last row from
#the remaining rows
	if (k < m)
      :

	for i
	in range (n - 1, (l - 1), -1):
	  print (a[m - 1][i], end = " ") m -= 1
#Print the first column from
#the remaining columns
	    if (l < n)
	  :
	    for i
	    in range (m - 1, k - 1, -1):
	      print (a[i][l], end = " ") l += 1
#Driver Code
		a =[[1, 2, 3, 4, 5, 6],
		    [7, 8, 9, 10, 11, 12],[13, 14, 15, 16, 17, 18]] R = 3;
C = 6 spiralPrint (R, C, a)