1 条题解
-
0
贪心的想,在每一个没有 的一列上,必定需要放一个(首尾不算)。那么我们只需要贪心的处理有 的列即可。
s1 = input().strip() s2 = input().strip() len_str = len(s1) num = 0 # 计数器 l = len_str r = 0 # 寻找第一出现和最后一个出现#的位置并记录 for i in range(len_str): if s1[i] == '#' or s2[i] == '#': l = min(l, i) r = max(r, i) # 转换为列表以便修改 s1 = list(s1) s2 = list(s2) for i in range(l, r): # 第一种情况的判断 if s1[i] == '#' and s1[i + 1] == '.' and s2[i] == '.': num += 1 s1[i + 1] = '#' # 第二种情况的判断 if s1[i] == '.' and s2[i + 1] == '.' and s2[i] == '#': num += 1 s2[i + 1] = '#' # 第三种情况的判断 if s1[i] == '#' and s2[i] == '#' and s2[i + 1] == '.' and s1[i + 1] == '.': p = i q = i for j in range(i + 1, r + 1): if s1[j] == '#': p = j break if s2[j] == '#': q = j break if p >= q: s1[i + 1] = '#' num += 1 else: s2[i + 1] = '#' num += 1 print(num)
信息
- ID
- 986
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- (无)
- 递交数
- 599
- 已通过
- 11
- 上传者