Microsoft Interview Question
SDE-2sCountry: India
#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
int x;
int y;
}node;
int fun(node* arr[])
{
int i;
int col=1;
int row = 1;
for(i=1;i<3;i++)
{
if(arr[0]->x!=arr[i]->x)
{
row= 0;
break;
}
}
for(i=1;i<3;i++)
{
if(arr[0]->y!=arr[i]->y)
{
col= 0;
break;
}
}
if(col==1&&row==1)
return 3;
else if(col==1)
return 2;
else if(row==1)
return 1;
else
return 0;
}
int main (void)
{
int i,x,y;
node* arr[4];
for(i=0;i<4;i++)
{
scanf("%d%d",&x,&y);
node* temp=(node*)malloc(sizeof(node));
temp->x= x;
temp->y=y;
arr[i]=temp;
}
fun(arr);
return 0;
}
public enum PointsState
{
None,
Row,
Column,
Diagonal
}
public class Point
{
public int X { get; set; }
public int Y { get; set; }
}
public class PointChecker
{
public static PointsState GetPointsState (IList <Point> points)
{
if (points.Count < 2)
return PointsState.None;
var firstPoint = points[0];
bool sameX = true;
bool sameY = true;
bool sameDiagonal = true;
for (var i = 1; i < points.Count; i++)
{
if (points [i].X != firstPoint.X)
sameX = false;
if (points [i].Y != firstPoint.Y)
sameY = false;
// check if diagonal!
if (firstPoint.X * points [i].Y != firstPoint.Y * points [i].X)
sameDiagonal = false;
}
if (sameX)
return PointsState.Row;
if (sameY)
return PointsState.Column;
if (sameDiagonal)
return PointsState.Diagonal;
return PointsState.None;
}
}
#include<stdio.h>
- chunmun August 06, 2017#include<stdlib.h>
typedef struct node
{
int x;
int y;
}node;
int fun(node* arr[])
{
int i;
int col=1;
int row = 1;
for(i=1;i<3;i++)
{
if(arr[0]->x!=arr[i]->x)
{
row= 0;
break;
}
}
for(i=1;i<3;i++)
{
if(arr[0]->y!=arr[i]->y)
{
col= 0;
break;
}
}
if(col==1&&row==1)
return 3;
else if(col==1)
return 2;
else if(row==1)
return 1;
else
return 0;
}
int main (void)
{
int i,x,y;
node* arr[4];
for(i=0;i<4;i++)
{
scanf("%d%d",&x,&y);
node* temp=(node*)malloc(sizeof(node));
temp->x= x;
temp->y=y;
arr[i]=temp;
}
fun(arr);
return 0;
}