(每日一练28783)题目名称:会议安排

文盲老顾 文盲老顾 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

开会了!作为一个集体,开会的时候桌子当然是需要和老大相邻的!(老大可能坐在桌子上边) 小艺被分配到排桌椅的活,可是小艺的力气都用在吃上了,怎么可能搬动这些桌椅呢。 她决定用现有的布局当作是会议座位安排。 每个桌子分配一个人。相邻桌子不同的桌子颜色不同。 小艺想知道选择某个桌子之后老大身边能围多少人?

注意审题,boss 就在桌子上,没有指定 boss 的位置和所属字符。就当桌子是 boss 好了。换个理解方式:组队打 boss 去了,每个字符表示一个人,特定字符表示 boss,问围着这个 boss 的有多少人。

这里没有考虑比如同一个字符不连续的情况,如果有这个用例的话,自行调整下即可。

n,m,c = input().split()
n,m = map(int,(n,m))
arr = [input() for _ in range(n)]
table = []
for i in range(n):
    for j in range(m):
        if arr[i][j] == c:
            table.append((i,j))
z = set()
for pos in table:
    for r in ((0,1),(0,-1),(1,0),(-1,0)):
        if n > pos[0] + r[0] >= 0 \
            and m > pos[1] + r[1] >= 0 \
            and (pos[0] + r[0],pos[1] + r[1]) not in table \
            and arr[pos[0] + r[0]][pos[1] + r[1]] != '.':
            z.add(arr[pos[0] + r[0]][pos[1] + r[1]])
print(len(z))
...全文
评论
收藏 已收藏
分享
返回顶部
文盲老顾
文盲老顾 新星创作者: 信息安全技术领域 新星创作者: 信息安全技术领域领域专家: 数据库技术领域 领域专家: 数据库技术领域
老顾的一亩三分地 320 成员 160 内容