题目
实现函数is_startswith,如果字符串source是以substr开头的,则函数返回True,反之返回False
例子
is_startswith('python','py') -> True
is_startswith('python','java') -> False
假设
- 输入一定为字符串类型
- 输入可能为空串
tips
- 首先要判断传入的参数是否合法,这里默认传入的都是字符串,那么我们要需要判断字符串是否有空串的情况
- 如果substr的长度大于source的长度,直接返回False
- 从索引0开始,遍历substr,从source上获得相同索引的字符,两者进行比较,只要有一个字符不相同,则可以立即返回False
答案
解法1
def is_startswith(source, substr):
"""
判断字符串source是否以substr开头
:param source:
:param substr:
:return:
"""
if not source or not substr:
return False
if len(substr) > len(source):
return False
for index, item in enumerate(substr):
if item != source[index]:
break
else:
return True # 如果for循环不是因为break结束的,就会进入到else语句块
return False
性能:
- 时间复杂度
O(n)
- 空间复杂度
O(n)
关键点:
- 首先要判断传入的参数是否合法,这里默认传入的都是字符串,那么我们要需要判断字符串是否有空串的情况
- 如果substr的长度大于source的长度,直接返回False
- 从索引0开始,遍历substr,从source上获得相同索引的字符,两者进行比较,只要有一个字符不相同,则可以立即返回False