如何实现n个姓名的不重复字母数统计并获取最大值?
解决方法
你只需要在现有代码基础上,记录每个姓名的不重复字母数量,再从中找出最大值即可,以下是几种实现方式:
方式一:用列表存储所有计数后取最大值
n = int(input()) counts = [] for i in range(n): s = input() t = '' for ch in s: if ch not in t: t += ch counts.append(len(t)) # 把当前姓名的不重复字母数存入列表 print(max(counts)) # 输出列表中的最大值
方式二:实时更新最大值(更节省内存)
n = int(input()) max_unique = 0 for i in range(n): s = input() t = '' for ch in s: if ch not in t: t += ch current_len = len(t) if current_len > max_unique: max_unique = current_len # 若当前数更大,则更新最大值 print(max_unique)
优化简化版
利用Python的set自动去重特性,可以大幅简化代码:
n = int(input()) max_unique = 0 for _ in range(n): s = input().strip() unique_chars = set(s) current_count = len(unique_chars) if current_count > max_unique: max_unique = current_count print(max_unique)
内容的提问来源于stack exchange,提问作者farzaneh taheri
相关产品推荐
相关产品推荐

