Solution using unordered map


#1

int gridCheck(int row,int col,const vector&A)
{
unordered_setm;
for(int i=row;i<row+3;i++)
{
for(int j=col;j<col+3;j++)
{
if(isdigit(A[i][j]))
if(m.find(A[i][j])!=m.end())
return 0;
else
m.insert(A[i][j]);
}
}
return 1;
}
int Solution::isValidSudoku(const vector &A) {
unordered_setm;
int i,j;
for(i=0;i<9;i++)
{
m.clear();
for(j=0;j<9;j++)
{
if(isdigit(A[i][j])){
if(m.find(A[i][j])!=m.end())
return 0;
else
m.insert(A[i][j]);
}
}
}
m.clear();
for(i=0;i<9;i++)
{
m.clear();
for(j=0;j<9;j++)
{
if(isdigit(A[j][i])){
if(m.find(A[j][i])!=m.end())
return 0;
else
m.insert(A[j][i]);
}
}
}
for(i=0;i<9;i=i+3)
{
for(j=0;j<9;j=j+3)
{
if(gridCheck(i,j,A)==0)
return 0;
}
}
return 1;
}