Wipro PWD Hiring Programming Test Questions & Answers 2023: FAQ, Expected Q/A, & More

Wipro PWD Hiring Programming Test Questions & Answers 2023 | Wipro PWD Hiring Programming Questions | Wipro Hiring of Persons with Disabilities Programming Questions | Wipro Coding Questions with Answers PDF

Wipro PWD Hiring Programming Test Questions & Answers 2023 | Wipro Questions and Answers: Here we have briefly discussed the Wipro Hiring of Persons with Disabilities Programming Questions and Answers. The candidates who are planning to appear for the exam must have complete knowledge of the exam pattern and all the important topics from the syllabus. This can be achieved by solving the Wipro PWD Hiring  Previous Year’s Papers. After you are done going through the syllabus, you must solve the previous year’s papers. This will help you to get an understanding of your current level of exam preparation. You will also know how much effort you need to put into the preparation. So that you can utilize the last days of your exam in the most efficient manner. Like any other company, Wipro PWD Hiring has 03 rounds to select suitable candidates. We are going to talk in detail about each round. For like this more upcoming private jobs click here

PREPARATION LINKS
Wipro Off Campus Drive 2023 Wipro PWD Hiring Syllabus 2023
Wipro PWD Hiring Question and Answers 2023

Notification Details
RecruiterWipro
DesignationHiring of Persons with Disabilities
Job LocationAcross India
Vacancies/PostMultiple
Join our Telegram

Wipro PWD Hiring Programming Test Questions with Solutions

Question:  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

C++ PROGRAM

#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; 
}

PYTHON PROGRAM

def spiralOrder(arr):
    ans=[]
    while arr:
        ans+=arr.pop(0)
        arr= (list(zip(*arr)))[::-1]
    return ans
arr=[[1, 2, 3, 4, 5, 6],[7, 8, 9, 10, 11, 12],[13, 14, 15, 16, 17, 18]]
print(spiralOrder(arr))

JAVA PROGRAM

// Java program to print a given matrix in spiral form 
import java.io.*;
class Main
{
// 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);
  }
}

Question:  A Pythagorean triplet is a set of three integers a, b and c such that a2 + b2 = c2. Given a limit, generate all Pythagorean Triples with values smaller than given limit.

Input : limit = 20
Output : 3 4 5
         8 6 10
         5 12 13
         15 8 17
         12 16 20

Simple Solution is to generate these triplets smaller than given limit using three nested loop. For every triplet, check if Pythagorean condition is true, if true, then print the triplet. Time complexity of this solution is O(limit3) where ‘limit’ is given limit.

An Efficient Solution can print all triplets in O(k) time where k is number of triplets printed. The idea is to use square sum relation of Pythagorean triplet, i.e., addition of squares of a and b is equal to square of c, we can write these number in terms of m and n such that,

       a = m2 - n2
       b = 2 * m * n
       c  = m2 + n2
because,
       a2 = m4 + n4 – 2 * m2 * n2
       b2 = 4 * m2 * n2
       c2 = m4 + n4 + 2* m2 * n2

We can see that a2 + b2 = c2, so instead of iterating for a, b and c we can iterate for m and n and can generate these triplets

JAVA PROGRAM

import java.util.*;
class Main 
{
    public static void pythagoreanTriplets(int limit)
    {
        int a,b,c=0;
        int m=2;
        while(c<limit)
        {
            for(int n=1;n<m;++n)
            {
                a=m*m-n*n;
                b=2*m*n;
                c=m*m+n*n;
                if(c>limit)
                    break;
                System.out.println(a+" "+b+" "+c);
            }
            m++;
        }
    }
    public static void main(String[] args)
    {
        int limit=20;
        pythagoreanTriplets(limit);
    }
}

PYTHON PROGRAM

def pythagoreanTriplets(limit):
    a = b = c = 0
    m = 2
    while True:
        for n in range(1,m+1):
            a = m*m - n*n
            b = 2*m*n
            c = m*m + n*n
            if c > limit:
                break
            if a==0 or b==0 or c==0:
                break
            print(a,b,c)
        m=m+1
        
limit = int(input())
pythagoreanTriplets(limit)

Question: Problem Statement

Alex works at a clothing store. There is a large pile of socks that must be paired by color for sale. Given an array of integers representing the color of each sock, determine how many pairs of socks with matching colors there are.

For example, there are n=7 socks with colors ar = {1,2,1,2,1,3,2}. There is one pair of color 1 and one of color 2. There are three odd socks left, one of each color. The number of pairs is 2.

Function Description
Complete the sockMerchant function in the editor below. It must return an integer representing the number of matching pairs of socks that are available.
sockMerchant has the following parameter(s):
             n: the number of socks in the pile
             ar: the colors of each sock

Input Format
The first line contains an integer n, the number of socks represented in ar.
            The second line contains n space-separated integers describing the colors ar[i] of the socks in the pile.

Constraints
1 <= n <= 100
1 <= ar[i] <= 100 & 0 <= i < n

Output Format
Return the total number of matching pairs of socks that Alex can sell.

Sample Input
9
10 20 20 10 10 30 50 10 20
Sample Output
             3

Explanation
Alex can match 3 pairs of socks i.e 10-10, 10-10, 20-20
while the left out socks are 50, 60, 20

C PROGRAM

#include<stdio.h>

int sockMerchant(int n, int arr[])
{
    int freq[101]={0};
    int ans = 0,i;
    for(i=0;i<n;i++)
        freq[arr[i]]++;
    for(i = 0; i <= 100; i++)
    {
      ans = ans+ freq[i]/2;
    }
    return ans;
}
int main ()
{
    int n;
    scanf("%d",&n);
    int arr[101],i;
    for (i = 0; i < n; i++)
    {
        scanf("%d",&arr[i]);
    }
    
    int ans=sockMerchant(n,arr);
    printf("%d\n",ans);
    return 0;
}
C++ PROGRAM
#include<bits/stdc++.h>
using namespace std;
int sockMerchant(int n, int arr[])
{
    int freq[101]={0};
    int ans = 0;
    for(int i=0;i<n;i++)
    {
        int value=arr[i];
        freq[value]++;
    }   
    for(int i = 0; i <= 100; i++)
    {
        ans = ans+ freq[i]/2;
    }

    return ans;
}
int main ()
{
    int n;
    cin >> n;
    int arr[n]={0};
    for (int i = 0; i < n; i++)
    {
        cin>>arr[i];
    }
    int res=sockMerchant(n,arr);
    cout<<res<<endl;
    return 0;
}
JAVA PROGRAM
import java.util.*;
class Main
{
    public static int sockMerchant(int n, int arr[])
    {
         int freq[]=new int[101];
        for(int i=0;i<n;i++)
        {
            freq[arr[i]]++;
        }
        int ans=0;
        for(int i=0;i<=100;i++)
            ans=ans+freq[i]/2;
        return ans;
    }
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int arr[]=new int[n];
        for(int i=0;i<n;i++)
            arr[i]=sc.nextInt();
        int ans=sockMerchant(n,arr);
        System.out.println(ans);

    }
}
PYTHON PROGRAM
def sockMerchant(n, ar):
    pairs = 0
    set_ar = set(ar)
    for i in set_ar:
        count = ar.count(i)
        pairs+=count//2
    return pairs
    
n = int(input())
ar = list(map(int, input().split()))
print(sockMerchant(n, ar))

Question: Counting Valleys

Problem Statement

Gary is an avid hiker. He tracks his hikes meticulously, paying close attention to small details like topography. During his last hike, he took exactly n steps. For every step he took, he noted if it was an uphill or a downhill step. Gary’s hikes start and end at sea level. We define the following terms:

  • A mountain is a non-empty sequence of consecutive steps above sea level, starting with a step up from sea level and ending with a step down to sea level.
  • A valley is a non-empty sequence of consecutive steps below sea level, starting with a step down from sea level and ending with a step up to sea level.

Given Gary’s sequence of up and down steps during his last hike, find and print the number of valleys he walked through.

Input Format

The first line contains an integer, , denoting the number of steps in Gary’s hike.

The second line contains a single string of characters. Each character belongs to {U, D} (where U indicates a step up and D indicates a step down), and the i(th) cin the string describes Gary’s i(th) step during the hike.

Constraints

  • 2 <= N <= 10^6

Output Format

Print a single integer denoting the number of valleys Gary walked through during his hike.

Sample Input

8

UDDDUDUU

Sample Output

1

Explanation

If we represent _ as sea level, a step up as / , and a step down as \ , Gary’s hike can be drawn as:

_/\      _

\    /

\/\/

It’s clear that there is only one valley there, so we print on a new line.

C PROGRAM
#include 
#include  
int countingValley(long int steps, char *path)
{
    long int i, level = 0, valley = 0;
    for(i=0; i<steps; i++)
    {
        if(path[i] == 'U')
        {
            level++;
        }
        else if(path[i] == 'D')
        {
            if(level == 1)
            {
                valley++;
            }
            level--;
        }    
    }
    return valley;
}
int main()
{
    long int steps;
    scanf("%li",&steps);
    char path[steps];
    int i, result;
    for(i=0; i<steps; i++)
    {
        scanf("%c",&path[i]);
    }
    result = countingValley(steps, path);
    printf("%d",result);
    return 0;
}
JAVA PROGRAM
#include<bits/stdc++.h>
using namespace std;
int countingValley(long int steps, char *path)
{
    long int i, level = 0, valley = 0;
    for(i=0; i<steps; i++)
    {
        if(path[i] == 'U')
        {
            level++;
        }
        else if(path[i] == 'D')
        {
            if(level == 1)
            {
                valley++;
            }
            level--;
        }    
    }
    return valley;
}
int main()
{
    long int steps;
    cin>>steps;
    char path[steps];
    int i, result;
    for(i=0; i<steps; i++)
    {
        cin>>path[i];
    }
    result = countingValley(steps, path);
    cout<<result;
    return 0;
}
PYTHON PROGRAM
def countingValley(steps, path):
    level = valley = 0
    for i in path:
        if i == 'U':
            level += 1
        elif i == 'D':
            if level == 1:
                valley += 1
            level -= 1
    return valley
    
steps = int(input())
path = input()
print(countingValley(steps, path))

Question:  Left Rotation

Problem Statement

A left rotation operation on an array shifts each of the array’s elements unit to the left. For example, if 2 left rotations are performed on array [1, 2, 3, 4, 5], then the array would become [3, 4, 5, 1, 2].

Given an array of integers and a number, , perform left rotations on the array. Return the updated array to be printed as a single line of space-separated integers.

Function Description

Complete the function rotLeft in the editor below. It should return the resulting array of integers.

rotLeft has the following parameter(s):

  • An array of integers .
  • An integer , the number of rotations.

Input Format

The first line contains two space-separated integers and , the size of and the number of left rotations you must perform.

The second line contains space-separated integers a[i].

Constraints

  • 1 <= n <= 10^5
  • 1 <= d <= n
  • 1 <= a[i] <= 10^8

Output Format

Print a single line of space-separated integers denoting the final state of the array after performing d left rotations.

Sample Input
5 4
1 2 3 4 5

Sample Output
5 1 2 3 4

Explanation
When we perform d=4 left rotations, the array undergoes the following sequence of changes:

[1,2,3,4,5] → [2,3,4,5,1] → [3,4,5,1,2] → [4,5,1,2,3] → [5,1,2,3,4]

Test Case : 1

Input (stdin)

  • 5 4
  • 1 2 3 4 5

Expected Output

  • 5 1 2 3 4

Test Case : 2
Input (stdin)

  • 20 10
  • 41 73 89 7 10 1 59 58 84 77 77 97 58 1 86 58 26 10 86 51

Expected Output

  • 77 97 58 1 86 58 26 10 86 51 41 73 89 7 10 1 59 58 84 77
C PROGRAM
#include <stdio.h>
int rotLeft(int arr[], int n, int d)
{
    int i, j;
    int first;
    for(i=0; i<d; i++)
    {
        first = arr[0];
        for(j=0; j<n-1; j++)
        {
            arr[j] = arr[j+1];
        }
        arr[j] = first;
    }
    return *arr;
}
int main()
{
    int n, d, i;
    scanf("%d",&n);
    scanf("%d",&d);
    int list[n];
    for(i=0; i<n; i++)
    {
        scanf("%d",&list[i]);
    }
    rotLeft(list, n, d);
    for(i=0; i<n; i++)
    {
        printf("%d ",list[i]);
    }
}
JAVA PROGRAM
import java.util.*;
class Main
{
    public static void rotateLeft(int a[],int n, int d)
    {
        int first,i,j;
        for(i=0;i<d;i++)
        {
            first=a[0];
            for(j=0;j<n-1;j++)
                a[j]=a[j+1];
            a[j]=first;
        }
    }
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int d=sc.nextInt();
        int a[]=new int[n];
        for(int i=0;i<n;i++)
            a[i]=sc.nextInt();
        
        rotateLeft(a,n,d);
        
        for(int i=0;i<n;i++)
            System.out.print(a[i]+" ");
    }
}
PYTHON PROGRAM
def rotateLeft(n,d,arr):
    for i in range(d):
        arr = rotatearr(n,arr)
    return arr
    
def rotatearr(n, arr):
    first = arr[0]
    for i in range(n-1):
        arr[i] = arr[i+1]
    arr[n-1] = first
    return arr

, d = map(int, input().split())
arr = list(map(int, input().split()))
for i in rotateLeft(n,d,arr):
    print(i, end=" ")

Question: C Program to check if two given matrices are identical

#include<stdio.h>
#define N 4
// This function returns 1 if A[][] and B[][] are identical
// otherwise returns 0
int areSame (int A[][N], int B[][N])
{
  int i, j;
  for (i = 0; i < N; i++)
    for (j = 0; j < N; j++)
      if (A[i][j] != B[i][j])
    return 0;
  return 1;
}
int main ()
{
  int A[N][N] = { {1, 1, 1, 1},
  {2, 2, 2, 2},
  {3, 3, 3, 3},
  {4, 4, 4, 4}
  };
  int B[N][N] = { {1, 1, 1, 1},
  {2, 2, 2, 2},
  {3, 3, 3, 3},
  {4, 4, 4, 4}
  };
  if (areSame (A, B))
    printf ("Matrices are identical ");
  else
    printf ("Matrices are not identical");
  return 0;
}

***BEST OFF LUCK***

We hope the above-mentioned information regarding Previous Year Paper will be helpful for the candidates. Download the papers and practice the different types of questions asked in the exam. You can also start preparing yourself for all types of Private Jobs, Bank Jobs, Government & Other exams and get quicker access to any required information through our Naukrimessenger.com. The article also provides the latest information and updates regarding ongoing recruitment processes. Bookmark our website now and ace your exam preparations! To avail of exclusive job offers, join our Telegram Channel page

Important Details