您的位置:首页 > 编程语言 > C语言/C++

36. Valid Sudoku

2016-09-12 20:03 274 查看


#include<iostream>
#include<vector>
#include<map>
using namespace std;
class Solution {
public:
bool isValidSudoku(vector<vector<char> >& board)
{
int i,j;
for(i=0;i<9;i++)
{
map<char,int>temp1;
map<char,int>temp2;
for(j=0;j<9;j++)
{
if(board[i][j]!='.'&&temp1.find(board[i][j])!=temp1.end())
return false;
else
++temp1[board[i][j]];
if(board[j][i]!='.'&&temp2.find(board[j][i])!=temp2.end())
return false;
else
++temp2[board[j][i]];
}
}
int m,n;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
map<char,int>temp;
for(m=3*i;m<3*i+3;m++)
{
for(n=3*j;n<3*j+3;n++)
{
if(temp.find(board[m]
)!=temp.end()&&board[m]
!='.')
return false;
else
++temp[board[m]
];
}
}
}
}
return true;
}
};
int main()
{
vector<vector<char> >board;
char x;
int i,j;
vector<char>v;
for(i=0;i<9;i++)
board.push_back(v);
for(i=0;i<9;i++)
for(j=0;j<9;j++)
{
cin>>x;
board[i].push_back(x);
}
Solution solve;
cout<<solve.isValidSudoku(board)<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C-C++