给你一个字符串 s
,每 两个 连续竖线 '|'
为 一对 。换言之,第一个和第二个 '|'
为一对,第三个和第四个 '|'
为一对,以此类推。
请你返回 不在 竖线对之间,s
中 '*'
的数目。
注意,每个竖线 '|'
都会 恰好 属于一个对。


思路:
统计所有的星号,剪掉竖线里面的。
python3实现:
class Solution:
def countAsterisks(self, s: str) -> int:
# 先统计数显数量
all_count = s.count("*")
# 找到竖线位置
gang_list_idx = []
for elem in range(0, len(s)):
if s[elem] == "|":
gang_list_idx.append(elem)
# 两两一组统计星号
count = 0
if len(gang_list_idx) != 0:
for i in range(0, len(gang_list_idx),2):
str_s = s[gang_list_idx[i]:gang_list_idx[i+1]]
count += str_s.count("*")
return all_count - count
