本文共 1292 字,大约阅读时间需要 4 分钟。
为了解决这个问题,我们需要判断给定的多个模式串是否存在一个共同的匹配串,使得所有模式串在替换#后的结果完全相同。如果存在这样的匹配串,我们需要判断其数量是否为有限值或无穷值。
#,其中#可以被替换为任意长度的任意小写字母字符串。我们需要找到所有模式串在替换#后的结果相同的情况。#之前的所有字符)和后缀(从最后一个#之后到末尾的所有字符)。#部分可以被统一替换,导致无穷多个匹配串,输出-1。否则,输出0。import sysdef main(): n = int(sys.stdin.readline()) prefix = [] suffix = [] for _ in range(n): s = sys.stdin.readline().strip() # 计算前缀 pre = [] for c in s: if c == '#': break pre.append(c) pre_str = ''.join(pre) prefix.append(pre_str) # 计算后缀 i = len(s) - 1 while i >= 0 and s[i] != '#': i -= 1 suffix_str = s[i+1:] suffix.append(suffix_str) # 检查前缀是否都相同 if len(set(prefix)) != 1: print(0) else: # 检查后缀是否都相同 if len(set(suffix)) != 1: print(0) else: print(-1)if __name__ == "__main__": main()
sys.stdin.readline读取输入,处理大量数据会更高效。#之前的所有字符,后缀是从最后一个#之后到末尾的所有字符。转载地址:http://nhjj.baihongyu.com/