Python 字符串反向查找子串:VTDD 实现

本文将介绍如何使用 Python 代码实现字符串反向查找子串的功能,并提供 VTDD(验证、转换、决策、默认)模式下的代码示例,方便理解和应用。

功能描述:

在一个字符串中反向查找给定的子串,并返回子串在字符串中第一次出现的位置(从字符串末尾开始算)。如果子串不存在,则返回 -1。

代码实现:

def find_sub_string_reverse(str, sub):
    '''
    在一个字符串中反向查找子串

    参数:
        str: 源字符串
        sub: 需查找的子串

    返回:
        如找到,返加子串的位置,否则返回-1
    '''
    # 验证:判断输入是否合法
    if not isinstance(str, str) or not isinstance(sub, str):
        raise TypeError('参数类型错误!')
    if len(sub) > len(str):
        return -1

    # 转换:将字符串反转
    str = str[::-1]
    sub = sub[::-1]

    # 决策:查找子串
    index = str.find(sub)

    # 默认:返回结果
    if index == -1:
        return -1
    else:
        return len(str) - index - len(sub)

# 全部用例数据
# 输入:
str = 'hello world'
sub = 'lo'
# 输出:
print(find_sub_string_reverse(str, sub))  # 3

# 输入:
str = 'hello world'
sub = 'haha'
# 输出:
print(find_sub_string_reverse(str, sub))  # -1

# 输入:
str = 'abcdefg'
sub = 'fg'
# 输出:
print(find_sub_string_reverse(str, sub))  # 5

代码说明:

  1. 验证: 代码首先验证输入参数的类型是否为字符串,并判断子串长度是否大于源字符串长度。如果输入参数不合法,则抛出类型错误异常。
  2. 转换: 代码将源字符串和子串都进行反转,以便从字符串末尾开始进行查找。
  3. 决策: 代码使用 Python 内置的 find 方法查找反转后的子串在反转后的源字符串中的位置。如果 find 返回 -1,则表示子串不存在,否则返回子串在源字符串中的位置。
  4. 默认: 代码将 find 返回的结果进行处理,如果子串存在,则将 find 返回的位置转换为原字符串中的位置,并返回该位置。如果子串不存在,则返回 -1。

总结:

本文提供了 Python 代码实现字符串反向查找子串的功能,并使用 VTDD 模式进行代码组织,方便理解和应用。

注意: 该代码仅供参考,实际应用中需要根据具体需求进行调整。

Python 字符串反向查找子串:VTDD 实现

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

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