• LeetCode刷题---简单组(一)


    🍒题目一 507. 完美数

    请添加图片描述

    对于一个 正整数,如果它和除了它自身以外的所有 正因子 之和相等,我们称它为 「完美数」。

    给定一个 整数 n, 如果是完美数,返回 true;否则返回 false。

    示例 1:

    输入:num = 28
    输出:true
    解释:28 = 1 + 2 + 4 + 7 + 14
    1, 2, 4, 7, 和 14 是 28 的所有正因子。
    示例 2:

    输入:num = 7
    输出:false

    提示:

    1 <= num <= 108


    🍒解法一

    本题解法采用力扣官方解答,使用存在一个大于根号num的正因子,那么一定存在一个小于根号num的正因子(num/i),方法很nice

    class Solution(object):
        def checkPerfectNumber(self, num):
            """
            :type num: int
            :rtype: bool
            """
            if num==1:
                return False
            i = 2
            sum = 1
            while i*i<=num:
                if num%i==0:
                    sum+=i
                    if i*i<num:
                        sum+=num/i
                i+=1
            return sum == num
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    🍒题目二 2678. 老人的数目

    给你一个下标从 0 开始的字符串 details 。details 中每个元素都是一位乘客的信息,信息用长度为 15 的字符串表示,表示方式如下:

    前十个字符是乘客的手机号码。
    接下来的一个字符是乘客的性别。
    接下来两个字符是乘客的年龄。
    最后两个字符是乘客的座位号。
    请你返回乘客中年龄 严格大于 60 岁 的人数。


    🍒解法一

    class Solution(object):
        def countSeniors(self, details):
            """
            :type details: List[str]
            :rtype: int
            """
            count = 0
            for i in details:
                if int(i[11:13])>60:
                    count+=1
            return count
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    🍒题目三 520. 检测大写字母

    我们定义,在以下情况时,单词的大写用法是正确的:

    全部字母都是大写,比如 “USA” 。
    单词中所有字母都不是大写,比如 “leetcode” 。
    如果单词不只含有一个字母,只有首字母大写, 比如 “Google” 。
    给你一个字符串 word 。如果大写用法正确,返回 true ;否则,返回 false 。

    示例 1:

    输入:word = “USA”
    输出:true
    示例 2:

    输入:word = “FlaG”
    输出:false

    🍒解法一

    class Solution(object):
        def detectCapitalUse(self, word):
            """
            :type word: str
            :rtype: bool
            """
            count = 0
            for i in word:
                if i.isupper():
                    count+=1
            print(count)
            # print(word[0])
            print(len(word))
            if count == 0 or count == len(word):
                return True
            elif count == 1:
                if word[0].isupper():
                    return True
                else:
                    return False
            else:
                return False
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    🍒解法二

    官方解法

    class Solution:
        def detectCapitalUse(self, word: str) -> bool:
            # 若第 1 个字母为小写,则需额外判断第 2 个字母是否为小写
            if len(word) >= 2 and word[0].islower() and word[1].isupper():
                return False
            
            # 无论第 1 个字母是否大写,其他字母必须与第 2 个字母的大小写相同
            return all(word[i].islower() == word[1].islower() for i in range(2, len(word)))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    根据题目要求,若单词的大写用法正确,则需要满足:

    若第 111 个字母为大写,则其他字母必须均为大写或均为小写,即其他字母必须与第 222 个字母的大小写相同;

    若第 111 个字母为小写,则其他字母必须均为小写。

    根据以上规则,可以整理得到以下更简单的判断规则:

    无论第 111 个字母是否大写,其他字母必须与第 222 个字母的大小写相同;

    若第 111 个字母为小写,则需额外判断第 222 个字母是否为小写。


    请添加图片描述

    挑战与创造都是很痛苦的,但是很充实。

  • 相关阅读:
    【Linux】指令详解(一)
    浏览器工作原理与实践--浏览上下文组:如何计算Chrome中渲染进程的个数
    js知识点getComputedStyle的用法,js获取dom样式的方法
    17-GuliMall 搭建虚拟域名访问环境
    Spring Boot项目开发实战:整合thymeleaf实现数据前端展示
    vue3+te项目正式开发
    自动驾驶系列(六)——谈谈车载人机交互技术
    技术策划学习 —— 引擎工具链高级概念与应用
    【Redis7】--3.Redis持久化
    stm32cubemx图形化配置之 FreeRTOS选项中CMSIS_V1和CMSIS_V2的区别
  • 原文地址:https://blog.csdn.net/null18/article/details/134000486