烂代码和好代码
好的代码应该是简单直接、逻辑清晰的,bug 难以隐藏的。即时没有注释读一遍也能看懂。 而烂代码逻辑混乱,写完过段时间自己都看不懂。 这里从一些问题出发对比好代码烂代码,希望大家共同提高。 1 红黑砖迷阵问题 问题描述[1] 有一个矩形的房间里铺满正方形瓷砖。每块瓷砖涂成黑色或红色。一个人站在黑色的瓷砖上,从此出发,可以移动到四个相邻的瓷砖之一,但只能移动到黑色的瓷砖上。计算他通过重复上述移动所能经过的黑砖数。 这里把红色改成了白色,其他不变。思路原作者描述的很详细了。 /* 样例输入输出 6 9 //列数、行数 BBBBWB BBBBBW BBBBBB BBBBBB BBBBBB BBBBBB BBBBBB W@BBBW BWBBWB 45 0 0 //结束标志 */ 这里对比一下我的实现(烂代码)和原作者的实现(好代码) #include<iostream> #include<cstdio> #include<string> #include<vector> using namespace std; int g=0; vector<vector<bool> > isvisit; /*1. 由于每次输入的是字符串,考虑用vector<string>表示该二维矩阵,cin>>str输入每行。 用char a[][];cin>>a[i] 更方便*/ void reach(vector