大家好,我是大四在校生,现在刚转到java,并下定决心来黑马学习,求和同学们混个脸熟啊~。我在大一大二的时候学过一段时间的java,所以现在学起来挺容易接受的,java和C++、C#又是大同小异,嘿嘿。
感觉技术分好难赚啊,求同学们指教指教~谢谢。
第一篇帖子就发算法题吧,是个ACM算法竞赛比赛题,中等难度,现在换用java实现,感觉好难啊:'(,半天写不出来。。
下面上题目,求同学们分享一下解题思路啊,然后一起写代码实现,如何~
我感觉都会加分的哦。回帖奖励黑马币,come on~
题目是这样的:
输入一个字符矩阵,每个位置的字符要么是'o'要么是'#',输出所给矩阵的由'#'组成的十字架的数量。
比如下图figure1中有1个十字架
要求:
1、每个十字架仅由4个#号组成。
2、每个十字架必须是独立的,如上图figure2中,第四行第三个字符是#,和上面的十字架连在了一起,就不算。
3、上图2、3、4十字架数量为0
输入规则:
1、输入包含多组测试用例
2、每组测试用例中,先输入一个数字N,表示矩阵是N*N的。
3、输入0时结束
输出规则:
对于每组测试数据,输出一个整数N,表示矩阵中有N个十字架。
样例输入:
4oo#o o###oo#oooo#4oo#o o###oo#ooo#o5oo#oooo#oo #####oo#oooo##o6ooo#ooooo##o o#####ooo#ooooo#oooooooo0
样例输出:
1000
题目就这样,求同学给个解题思路啊。还有用什么存储矩阵好呢,用二维char数组好些还是一维String?还是StringBuffer?
原题在杭电的OnlineJudge上(当前正在比赛,练习系统关掉了,晚一小会就开了):http://acm.hdu.edu.cn/showproblem.php?pid=4414
|