首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >你在最大的房间里吗?

你在最大的房间里吗?
EN

Code Golf用户
提问于 2014-06-18 23:04:59
回答 1查看 3.1K关注 0票数 29

Introduction

你最近在一家相当好的软件公司接受了一份工作。你对办公室的规模很满意,但你有最大的办公室吗?当你路过的时候,只是盯着你同事的办公室就很难分辨了。唯一的办法就是检查建筑的蓝图.

您的任务

编写一个程序、脚本或功能,为您的建筑提供一个平面图,并指示您的办公室是否是最大的。这平面图很容易看,因为这座建筑是n乘n正方形的。

输入将由n+1 \n-delimited行组成。第一行将有编号n在上面。接下来的n条线将是这座建筑的平面图。一个简单的示例输入:

代码语言:javascript
复制
6
......
.  . .
.X . .
.  . .
.  . .
......

该楼面计划的规则如下:

  • . (ASCII 46)将用于表示墙壁。(空间ASCII 32)将用于表示开放空间。
  • 您是由一个X (ASCII 88)表示的。你在你的办公室。
  • 平面图是n行,每一行都有n个字符。
  • 这座建筑四周全是墙。这就意味着输入的第二行(布局图的第一行)和输入的最后一行都是.s,这也意味着每一条布局线的第一行和最后一个字符都是.s。
  • 办公空间的大小定义为相邻空间的总和( N、S、E、W四个方向连续移动,不穿过墙)。
  • 就办公室大小而言,表示您的X值等于(开放空间)。
  • 4 <= n <= 80

无论你的办公室是否严格地比其他所有的办公室都大,你都应该输出。输出可以是在所选择的编程语言中明确表示真假的任何内容,并遵循零、空和空表示False的标准约定。这意味着你的办公室绝对是最大的。

上述输入的样本输出:

代码语言:javascript
复制
1

因为你的办公室是8平方英尺,而另外一个办公室是4平方英尺。

I/O指南

  • 输入可以从stdin读取,并将输出回答到stdout。

  • 输入可以是函数的单个字符串参数,回答是该函数的返回值。

FAQ

  • 整个大楼由墙壁和办公室组成。
  • 这座大楼只有一层楼
  • 输入中保证有X,但不能保证有任何空格。你可以有一个1x1办公室,其余的建筑是墙(你有最大的办公室!)万岁!)

其他示例

代码语言:javascript
复制
10
..........
.   .  . .
.  .   . .
.  .   . .
. ..   . .
..       .
..........
.      X .
.        .
..........

这里有三个办公室,你的南方办公室是长方形的,西北的办公室是一个三角形(Ish),东北的办公室是奇怪的畸形,但比你的办公室还要大。输出应该是假的。

这是一个挑战,写最短的代码,快乐的密码-高尔夫

EN

回答 1

Code Golf用户

发布于 2014-10-24 12:23:27

Python2-258字节

代码语言:javascript
复制
r=range;h=input();m="".join(raw_input()for x in r(h))
w=len(m)/h;n=0;f=[x!='.'for x in m]
for i in r(w*h):
 if f[i]:
    a=[i];M=s=0
    while a:
     i=a.pop();s+=1;M|=m[i]=='X';f[i]=0
     for j in(i-1,i+1,i-w,i+w):a+=[[],[j]][f[j]]
    n=max(s,n)
    if M:A=s
print A==n

使用stdin作为输入

注意:首先,if是由单个空格缩进的,其他缩进行要么使用单个制表符字符,要么使用制表符和空格。

票数 2
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/32015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档