NO28.实现strStr()

复制代码
# 有点问题,解决了数组越界后但还是发生错误,待解决
class Solution:
    def strStr(self, haystack: str, needle: str) -> int:
        if not needle:
            return 0
        if len(needle)>len(haystack):
            return -1
        if haystack==needle:
            return 0
        for i in range(len(haystack)):
            flag=1
            k=i
            for j in range(len(needle)):
                if haystack[k]!=needle[j] :
                    flag=0 
                elif haystack[k]!=needle[j] and k<len(haystack):
                    k+=1
                if flag==0:
                    break
            if flag==1:
                return i
        return -1
复制代码
#调用python的内部函数.find,返回haystack第一个查到的下标
class Solution:
    def strStr(self, haystack: str, needle: str) -> int:
        if needle == "":
            return 0
        else:
            return haystack.find(needle)
复制代码
#python'进行切片处理,i:i+n进行比较相等则返回i
class Solution:
    def strStr(self, haystack: str, needle: str) -> int:
        if not needle or len(needle) == 0 :#特例处理
            return 0
        n = len(needle)
        i = 0
        while i <= (len(haystack)-n):   ##等于两个字符串长度相减时,移位完毕
            if haystack[i:i+n] == needle:  ##依次移位,判断i+n(n为第二个字符串长度)是否相等
                return i
            else:
                i += 1
        if i > (len(haystack)-n):
            return -1
复制代码

 

 
posted @   是冰美式诶  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示