Python - 长度为 K 的子字符串匹配位置数
在给定的问题陈述中,我们必须使用 Python 编程找到长度为 K 的子字符串匹配的位置数。因此,此问题有助于从输入字符串中获取所有长度为 K 的子字符串。
理解问题
手头的问题需要一个包含一些子字符串的输入字符串。因此,我们必须显示给定字符串中子字符串匹配的位置数。例如,让我们看看下面的图片 -
在上图中,我们可以看到 K 的值为“aaab”,因此在计算此字符串后,输出将为 4,因为该字符串在输入字符串中出现了四次。
上述问题的逻辑
为了解决这个问题,我们将定义子字符串和子字符串长度 K。然后,我们将从给定字符串中提取子字符串,并与定义的字符串进行匹配,如果两者匹配,则将计数值加 1。最后,返回计数值以显示长度为 K 的子字符串匹配的位置数。
算法
步骤 1 - 首先初始化输入字符串、K 值和子字符串的变量,如 input_str、K 和 substr。
步骤 2 - 定义一个函数来计算输入字符串中子字符串的匹配位置。并在该函数内部传递三个参数,如 input_str、K 和 substr。
步骤 3 - 然后初始化一个名为 counter 的变量来记录子字符串的计数。
步骤 4 - 将在字符串索引上启动一个循环,直到字符串长度 - K + 1。这将表示子字符串的大小。
步骤 5 - 在循环内部,我们将从字符串中提取 K。
步骤 6 - 接下来,将提取的字符串与给定的子字符串进行比较。如果两者相同,我们将使计数器值加 1。
步骤 7 - 迭代完整个字符串后,我们将返回最终的计数器值以在控制台上显示。
示例
# Initialize the input string
input_str = "aaabddhaaabnsnsaaabkskd"
K = 4
# Initialize the substring
substr = "aaab"
# Define the function to count the matching string
def count_positions(input_str, K, substr):
# Initialize the counter with 0
counter = 0
# Iterate the input string
for i in range(len(input_str) - K + 1):
str_size = input_str[i:i+K]
if str_size == substr:
counter += 1
return counter
# Call the above function
Output = count_positions(input_str, K, substr)
print(f"The substring '{substr}' with length {K} is matching at: '{Output}' positions")
输出
The substring 'aaab' with length 4 is matching at: '3' positions
复杂度
查找长度为 K 的子字符串匹配位置数的时间复杂度为 O(N),其中 N 是给定 input_str 的长度。因为代码迭代字符串从 0 到 len(input_str) - K +1。
结论
由于我们已成功使用 Python 解决了给定的问题。我们使用了基本的 Python 功能来获得有效的解决方案,以获取子字符串的位置数。
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP