判断字符串是否存在连续子串'algorithm' - Python实现

本篇文章将讲解如何判断一个字符串中是否存在连续子串'algorithm',并提供高效的Python代码示例。

问题描述

给定一个全由小写字母构成的字符串,判断该字符串中是否存在连续子串'algorithm'。

输入格式

  • 第一行:一个整数N (1 ≤ N ≤ 10⁶) ,表示字符串的长度。
  • 第二行:一个长度为N的字符串S,保证S仅由小写字母构成。

输出格式

  • 共一行:如果S内存在连续子串'algorithm',则输出'YES';否则,输出'NO'

Python代码示例

def has_substring(s):
    target = 'algorithm'
    n = len(s)
    m = len(target)
    i = 0
    
    while i <= n - m:
        j = 0
        while j < m and s[i+j] == target[j]:
            j += 1
        if j == m:
            return 'YES'
        i += 1
    
    return 'NO'

# 读取输入
N = int(input())
S = input()

# 判断是否存在连续子串
result = has_substring(S)
print(result)

代码解释

  1. has_substring(s) 函数:
    • 接受一个字符串 s 作为输入。
    • 使用两个指针 ij 分别遍历字符串 s 和目标子串 'algorithm'。
    • 如果找到匹配的子串,则返回 'YES',否则返回 'NO'。
  2. 主程序:
    • 读取输入的字符串长度 N 和字符串 S
    • 调用 has_substring(S) 函数判断是否存在子串 'algorithm'。
    • 打印结果。

总结

本文介绍了如何判断字符串中是否存在连续子串'algorithm',并提供了Python代码示例。该代码采用了双指针的遍历方法,具有较高的效率。您可以根据实际需求对代码进行修改和优化。

判断字符串是否存在连续子串'algorithm' - Python实现

原文地址: https://www.cveoy.top/t/topic/bknY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录