之前在做一些数据结构工作时,想到了这个问题,认为它会成为一个好的代码高尔夫:给定一个包含 ASCII 艺术矩形的二维字符数组,生成矩形的坐标和大小的列表。
- 任何可以转换的输入或输出格式都可以(例如:char **、字符串列表、标准输入中的行;四个整数的列表、结构体、固定数量+/-来表示大小等)。
- 同样,输出不需要按特定顺序排列。
- 对于无效的输入或错误的矩形,您不需要做任何有用的事情,但是不应该为不在输入中的矩形生成看起来有效的坐标。
- 没有两个有效的矩形共享一个
+
(尽管+
可以作为矩形的一部分出现) - 您可以假设所有矩形至少为3x3:每个边缘都有一个
-
或|
。
示例:
" "
" +-+ | "
" | | \-"
" +-+ "
(2,1;3,3)
"+--+ +--+"
"| | | |"
"+--+ +--+"
(0,0;4,3), (6,0;4,3)
" +---+ "
"->|...| "
" +---+ "
(2,0;5,3)
"+-+ +--+ +--+"
"| | | | | |"
"+-+ | | + -+"
" | | "
" +--+ +-+ "
" +--+ | "
" +--+ +-+ "
(0,0;3,3), (4,0;4,5) # (2,5;4,2) is fine, but not needed
+
,它们都是它们的一部分,所以不行。我会让实现决定是否要处理嵌套的矩形,但允许它们应该不难。 - David X