洛谷P1079 Python解法
时间: 2024-03-01 21:47:36 浏览: 131
LuoguCrawler:一个python爬虫来爬取洛谷各种信息
洛谷P1079是一个题目,题目描述为:给定一个字符串s和一个正整数n,求出s的所有长度为n的子串中,包含不同字符的个数最多的子串的不同字符个数。
下面是P1079的Python解法:
```python
def count_unique_chars(s):
return len(set(s))
def find_max_unique_chars_substring(s, n):
max_unique_chars = 0
max_substring = ""
for i in range(len(s) - n + 1):
substring = s[i:i+n]
unique_chars = count_unique_chars(substring)
if unique_chars > max_unique_chars:
max_unique_chars = unique_chars
max_substring = substring
return max_substring
s = input("请输入字符串s:")
n = int(input("请输入正整数n:"))
result = find_max_unique_chars_substring(s, n)
print("包含不同字符最多的子串是:", result)
```
这段代码首先定义了一个函数`count_unique_chars`,用于计算一个字符串中不同字符的个数。然后定义了另一个函数`find_max_unique_chars_substring`,用于找到给定字符串`s`中长度为`n`的子串中,包含不同字符个数最多的子串。
在`find_max_unique_chars_substring`函数中,通过遍历字符串`s`的所有长度为`n`的子串,使用`count_unique_chars`函数计算每个子串中不同字符的个数。如果当前子串的不同字符个数大于之前记录的最大值,就更新最大值和最大子串。
最后,通过输入函数获取用户输入的字符串`s`和正整数`n`,调用`find_max_unique_chars_substring`函数得到结果,并打印出来。
阅读全文