LeetCode-36-Valid Sudoku(模拟/遍历)-Easy
2016-01-02 18:06
465 查看
1. 题意理解:
判断9宫格的填充内容是否符合9宫格游戏规则。
2. 题目分析:
1)模拟游戏规则,判断横、竖、以及9个子格的内容是否符合规范;
2)遍历所有的情况;
3. 解题代码:
判断9宫格的填充内容是否符合9宫格游戏规则。
2. 题目分析:
1)模拟游戏规则,判断横、竖、以及9个子格的内容是否符合规范;
2)遍历所有的情况;
3. 解题代码:
class Solution { private: bool isValid(vector<char> &v){ sort(v.begin(), v.end()); for(int i=1; i<9; i++){ if(v[i]==v[i-1] && v[i]!='.'){ cout<<"v[i]= "<<v[i]<<endl; cout<<"v[i-1]= "<<v[i-1]<<endl; return false; } } return true; } public: bool isValidSudoku(vector<vector<char>>& board) { //cout<<board[0][0]<<board[0][1]<<board[0][2]<<board[0][3]<<board[0][4]<<endl; for(int i=0; i<9; i++){ vector<char> t(board[i]); if(!isValid(t)){ cout<<"horizontal false"<<endl; return false; } } for(int i=0; i<9; i++){ vector<char> t; for(int j=0; j<9; j++){ t.push_back(board[j][i]); //cout<<board[j][i]<<" "<<endl; } if(!isValid(t)){ cout<<"vetical false"<<endl; return false; } } // for(int m=0; m<3; m++){ for(int n=0; n<3; n++){ vector<char> t; for(int x=0; x<3; x++){ for(int y=0; y<3; y++){ t.push_back(board[m*3+x][n*3+y]); //cout<<board[m*3+n][n*3+x]; } } if(!isValid(t)){ cout<<"block false"<<endl; return false; } } cout<<endl; } return true; } };
相关文章推荐
- Win10无线网络图标不显示问题修复
- mac显示所有文件、不产生.DS_Store文件
- BCache源码浅析之三数据读写流程
- iOS不同版本适配问题(#ifdef __IPHONE_7_0)
- Android 开发环境安装配置 JDK1.8.0+Android studio
- SSDTHook实例--编写稳定的Hook过滤函数
- zzulioj--1799--wrz的压岁钱(贪心)
- zzulioj--1799--wrz的压岁钱(贪心)
- vs2012环境下,cocos2dx3.4 c++项目调用Lua的环境搭建
- eclipse插件使用
- BCache源码浅析之二数据结构与操作
- Linux学习笔记――find命令
- 夺命雷公狗---微信开发02----了解下微信公众平台交互原理和加密和解密原理
- oracle中varchar类型的最大长度
- UIButton, UILabel, UITextField
- Rotate Array leetcode
- zoj2270Shamans【凸包】
- 数学归纳法证明求和公式
- 字典树模板
- JAVA 正则表达式的三种模式: 贪婪, 勉强和占有的讨论