TopcoderArchive
Archive
Algorithm problem

CountingCrosses

Problem statement, definition, constraints, and public examples.

Problem Statement

M x N个点构成了一个矩形网格,M行Nåˆ—ã€‚æ¯ä¸ªç‚¹æ˜¯é»‘è‰²æˆ–è€ ç™½è‰²ã€‚åå­—æž¶ç”±2个相交线段构成:垂直线段AB和水平线段CDï¼Œå ¶ä¸­ï¼ŒA,B,C,D是不同的网格格点,点A和B不属于线段CD,点C和D不属于线段AB。设交点为E,一个有效的十字架要求满足如下条件:A,B,C,D和E颜色相同。

给定String[] grid,grid数组第iä¸ªå ƒç´ çš„ç¬¬j个字符如果是’W’,则表明第i行第j列的点是白色,’B’则代表黑色。返回给定网格中有效的十字架个数。

Definition

Class:
CountingCrosses
Method:
count
Parameters:
String[]
Returns:
int
Method signature:
int count(String[] grid)
(be sure your method is public)

Constraints

  • grid åŒ å«1到50ä¸ªå ƒç´ ï¼Œå«1和50。
  • gridçš„æ¯ä¸ªå ƒç´ å«1到50个字符,含1和50。
  • gridçš„æ‰€æœ‰å ƒç´ åŒ å«ç›¸åŒæ•°é‡çš„å­—ç¬¦ã€‚
  • gridçš„æ¯ä¸ªå ƒç´ åªåŒ å«å­—ç¬¦'W'和 'B'。

Examples

  1. {"BWB",
     "WWW",
     "BWB"}
    Returns: 1
    只有一个白色的十字架。
  2. {"BWB",
     "WBW",
     "BWB"}
    Returns: 0
    十字架水平部分和竖直部分的交点一定要和端点颜色一样。图中没有满足条件的十字架。
  3. {"WWWW",
     "WWWW",
     "WWWW",
     "WWWW"}
    Returns: 16
    中央的4个点有希望成为十字架的交点E,每个点对应4个不同的有效十字架,所以总数是4*4=16。
  4. {"W"}
    Returns: 0
  5. {"BWBW",
     "BBBB",
     "WWWW",
     "BWBW"}
    Returns: 4
    分别以点(1,2) B 和点(2,1)W为交点,各对应2个有效的十字架,注意十字架中非端点和交点部分的颜色没有要求。
Back to all problems