Python 字符串反向查找子串:VTDD 实现
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
代码说明:
- 验证: 代码首先验证输入参数的类型是否为字符串,并判断子串长度是否大于源字符串长度。如果输入参数不合法,则抛出类型错误异常。
- 转换: 代码将源字符串和子串都进行反转,以便从字符串末尾开始进行查找。
- 决策: 代码使用 Python 内置的
find方法查找反转后的子串在反转后的源字符串中的位置。如果find返回 -1,则表示子串不存在,否则返回子串在源字符串中的位置。 - 默认: 代码将
find返回的结果进行处理,如果子串存在,则将find返回的位置转换为原字符串中的位置,并返回该位置。如果子串不存在,则返回 -1。
总结:
本文提供了 Python 代码实现字符串反向查找子串的功能,并使用 VTDD 模式进行代码组织,方便理解和应用。
注意: 该代码仅供参考,实际应用中需要根据具体需求进行调整。
原文地址: https://www.cveoy.top/t/topic/ohug 著作权归作者所有。请勿转载和采集!