LeetCode力扣-----Python----Day1

最后一个单词的长度 No.58

题目描述:

在这里插入图片描述

第一想法:

倒序遍历+字母前面有space来确立为终止条件:

		原本以为只需要倒序判断找到space的位置就行了,败给了空串‘’、 space串‘     ’和‘A       ’

class Solution:
    def lengthOfLastWord(self, s: str) -> int:
        count=0
        if len(s) == 0:#判断空串-----------------------------Omission_1
            return 0
        elif len(s)==1 and s[0] != ' ':#只有一个单词
            return 1
        else:
            for index in range(len(s)-1,-1,-1):
                if s[index] == ' ':#此处依据为字母前面的空格来进行索引定位---导致len(‘A ’)=2寻找错误-----Omission_4---------未解决
                    if len(s)-index-1 <= 0:#空格后面的字符串大小是否为0------------------Omission_2
                        count+=1
                        if count == len(s):#全为空格串------------------Omission_3
                            return 0
                        else :
                            continue
                    else:
                        return len(s)-index-1-count
#放弃挣扎,看答案                        

New skill :

三种逆序:

  • 切片
for i in a[::-1] :#逆序遍历 【start:end:step】
    use i #元素
  • range()函数:
    for i in range(len(a)-1,-1,-1):#  range() 函数:range(start, stop, step)      (stop,start】
        use a[i]
  • reversed()函数 or a.reverse()再进行遍历 (a为list类型)
    for i in reversed(a):
        use i
# 使用列表的reverse方法
		l = list(s)
		l.reverse()

Solution_online(网上解法):第三种方法表现最优

  1. 逆序剔除空格再判断字母数
  2. 逆序剔除空格至字母,再定位此处,逆序寻找空格(终止条件)并计数
  3. map和split(使用库函数)
 class Solution:
        def lengthOfLastWord(self, s):#使用两个while
            """
            :type s: str
            :rtype: int
            """
            cnt, tail = 0, len(s) - 1
            while tail >= 0 and s[tail] == ' ':
                tail -= 1
            while tail >= 0 and s[tail] != ' ':
                cnt += 1
                tail -= 1
            return cnt
     
            from users : gaussic               
    -------------------------------------------------------------------                             
    class Solution:
        def lengthOfLastWord(self, s: str) -> int:
            end = len(s) - 1
            while end >= 0 and s[end] == " ":
                end -= 1
            if end == -1: return 0
            start = end
            while start >= 0 and s[start] != " ":
                start -= 1
            return end - start        
    -------------------------------------------------------------------
    class Solution:
        def lengthOfLastWord(self, s: str) -> int:
            if not s: return 0
            arr = list(map(str, s.strip().split(' ')))
            return len(arr[-1])        

重写:

中午休息重写,困扰一上午的出错点在于死抓字母前的Space,换个思路,围绕
!Space即字母进行解决——成功了

class Solution:
    def lengthOfLastWord(self, s: str) -> int:
        if len(s)==0:#处理空串
            return 0
        elif len(s)==1:#处理单字符
            if s[0] == ' ':
                return 0
            else:
                return 1
        else:           #处理长度至少为二的字符串
            r=s[::-1]#倒序一下
            r=r+' '
            count=0
            for x in range(len(r)) :
                #'A ' '  '
                if r[x] !=' ':
                    count+=1
                    if x==len(r) or r[x+1] == ' ':
                        return count
            if count == 0 :#解决space串
                return 0

我是基础非常差的up主,时间不多,思想简单,个人随笔,勿喷

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值