当前位置: 首页 > news >正文

力扣6~10题

题6(中等):

思路:

这个相较于前面只能是简单,个人认为,会print打印菱形都能搞这个,直接设置一个2阶数组就好了,只要注意位置变化就好了

python代码:

def convert(self, s: str, numRows: int) -> str:

        #创建n堆空字符串

        new_list=['' for i in range(numRows)]

        #遍历字符串

        k=0

        flag=1

        for i in range(len(s)):

            new_list[k]+=s[i]

            k+=flag

            if numRows-1==0:

                k=0

            else:

                if k==0:

                    flag=1

                elif k==numRows-1:

                    flag=-1

        return ''.join(new_list)

题7(中等):

思路:

怎么感觉难度降下来了,这个用python太容易了啊,用c++应该也不难吧,翻转字符串一个栈不就好了吗?

python代码:

class Solution:

    def reverse(self, x: int) -> int:

        x_str=str(x)

        if x_str[0]=='-':

            x_str='-'+x_str[:0:-1]

        else:

            x_str=x_str[::-1]

        i=int(x_str) if int(x_str)>=-2**31 and int(x_str)<= 2**31-1 else 0

        return i

题8(中等):

思路:

这个截断和我想的截断有点不同啊,我以为还要转二进制然后断呢

python代码:

class Solution:

    def myAtoi(self, s: str) -> int:

        s=s.strip()

        s_num=''

        for i in range(len(s)):

            if i==0 and (s[i]=='+' or s[i]=='-'):

                s_num+=s[i]

                continue

            if ord(s[i])>=ord('0') and ord(s[i])<=ord('9'):

                s_num+=s[i]

                continue

            else:

                break

        if s_num=='+' or s_num=='-':

            s_num=0

        s_num=int(s_num if s_num!='' else 0)

        if s_num<=-2**31:

            s_num=-2**31

        if s_num>=2**31-1:

            s_num=2**31-1

        return s_num

题9(简单):

思路:

这个对于python有点过于简单了吧

python代码:

class Solution:

    def isPalindrome(self, x: int) -> bool:

        return str(x)==str(x)[::-1]

题9(困难):

思路:

我只能说我不是理解正则,毕竟爬虫我都不管啥,直接.*?,导致我理解错了题意思,我当时以为*是可以匹配任意了,然后写一晚上都没成功,看评论才理解意思,其实理解了写起来就清晰了,采用的方法是递归,时间比较消耗,所以要预处理一下,不然超时

python代码:

class Solution:def isMatch(self, s: str, p: str) -> bool:if p=='':return s==''if s=='':if len(p)!=2 and p[1]!='*':return Falseif len(p)==2 and p[1]=='*':return Truei=0#预处理,while 1:if p[i]=='*':if i+2<len(p) and p[i+2]=='*':if p[i-1]==p[i+1]:p=p[:i+1]+p[i+3:]i+=1if i>=len(p):breaks_p=0p_p=0while 1:if s_p>=len(s) and p_p>=len(p):return Trueif p_p>=len(p):return Falseif p_p+1<=len(p)-1 and p[p_p+1]=='*':for i in range(s_p,len(s)):if s[i]!=p[p_p] and p[p_p]!='.':breakelse:if self.isMatch(s[i:],p[p_p]+p[p_p+2:]):return Truep_p+=2else:if s_p>=len(s):return Falseif p[p_p]==s[s_p] or p[p_p]=='.':p_p+=1s_p+=1else:return False

写得很气,所以赶工,注释都没有,再看的话又烦,感觉屎山一样,做的最久的一次,写了3个版本的代码


http://www.mrgr.cn/news/43759.html

相关文章:

  • 大语言模型中文本分割策略的综合指南
  • Day02-MySQL数据库服务体系结构
  • Java 注释新手教程一口气讲完!ヾ(≧▽≦*)o
  • 校企合作必备无人机兴趣班技术详解
  • P10185 [YDOI R1] Necklace
  • Qt开发技巧(十四)文字的分散对齐,设置动态库路径,进度条控件的文本,文件对话框的卡顿,滑块控件的进度颜色,停靠窗体的排列,拖拽事件的坑
  • 2025秋招LLM大模型多模态面试题(九)-- LoRA 面试问题大全:从理论到实践
  • Chromium 搜索引擎功能浅析c++
  • 重生之我们在ES顶端相遇第 20 章 - Mapping 参数设置大全(进阶)
  • 【表达式的值II】
  • 终于有人把多模态大模型讲这么详细了
  • [Python] 轻松入门输出语句与条件语句
  • ElasticSearch 备考 -- Snapshot Restore
  • 《浔川社团官方通报 —— 为何明确 10 月 2 日上线的浔川 AI 翻译 v3.0 再次被告知延迟上线》
  • 教育技术革新:SpringBoot在线教育系统开发
  • 【数学分析笔记】第4章第4节 复合函数求导法则及其应用(3)
  • ffmpeg面向对象——拉流协议匹配机制探索
  • CSS盒子模型
  • 自动驾驶系列—线控系统:驱动自动驾驶的核心技术解读与应用指南
  • 独孤思维:闲得蛋疼才去做副业