题解 | 小红的矩阵染色

小红的矩阵染色

https://www.nowcoder.com/practice/f8b771318bb04490b7389cc35e148166

# 由题目可知,存在列方向连续的两个及以上的字符'o'才有分,考虑找出所有列方向的字符'o'
import sys

data_list = []    # 处理输入数据
for i in list(sys.stdin):
    data_list.append(i.replace('\n', ''))
n, m, k = map(int, data_list[0].split())
del data_list[0]

len_o = []
for i in range(m):    # 循环得到每一列中的所有连续字符'o',存入列表中
    count = 0
    for j in range(n):
        if data_list[j][i] == 'o':
            count += 1
        else:
            len_o.append(count)    # 若中间出现'*'则重新计数
            count = 0
            continue
    len_o.append(count)

len_o.sort(reverse = True)    # 降序排列

score = 0
for i in len_o:    # 从最长序列循环计算
    if k <= 1:    # 当k <= 1时,在一列中怎么涂都不得分
        break
    elif int(i) >= 2 and int(i) >= k:    # 当存在填涂后可得分的列,看k的大小
        score += k - 1
        break    
    elif int(i) >= 2 and int(i) < k:    # 比k大则直接计算退出,比k小则再循环
        score += int(i) - 1
        k -= int(i)

print(score)



全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 17:04
点赞 评论 收藏
分享
牛客96931767...:这履历不是在网安横着走啊
大家都开始春招面试了吗
点赞 评论 收藏
分享
01-27 15:41
门头沟学院 Java
想躺平的菜鸡1枚:我项目比你难、学历比你好、还有SCI论文,投java都被拒一大片,现在基本上都要问点agent开发
软件开发投递记录
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务