zoukankan      html  css  js  c++  java
  • leepcode-题目解析6

    30 找不同

    给定两个字符串 st,它们只包含小写字母。

    字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。

    请找出在 t 中被添加的字母。

    示例:

    输入:
    s = "abcd"
    t = "abcde"
    
    输出:
    e
    
    解释:
    'e' 是那个被添加的字母。
    

    解答: 一开始想用集合来的差集来解题,忽略了集合会去重,如果字符串t有两个相同元素,就不能用集合了.就只能用笨办法,转化成列表后,用for循环把元素一个个取出来,在用列表内置方法.remove来一个个删除.

    class Solution(object):
        def findTheDifference(self, s, t):
            """
            :type s: str
            :type t: str
            :rtype: str
            """
            
    #         s1=set(t) ^ set(s)
    #         for i in s1:
    #             return i
            
            s_nums = list(s)
            t_nums = list(t)
            for i in s_nums:
                if i in t_nums:
                    t_nums.remove(i)
            return (t_nums[0])
    
    

    31 斐波拉契数

    斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 01 开始,后面的每一项数字都是前面两项数字的和。也就是:

    F(0) = 0,   F(1) = 1
    F(N) = F(N - 1) + F(N - 2), 其中 N > 1.
    

    给定 N,计算 F(N)

    解答:斐波拉契的规律:a,b = b,a+b

    class Solution:
        def fib(self, N: int) -> int:
            if N == 0:
                return 0
            elif N ==1:
                return 1
            elif N ==2:
                return 1
            elif N == 3:
                return 2
            else:
                a = 1
                b = 2
                for i in range(N-3):                
                    a,b = b,a+b
                return b
                    
    

    32 检测大写字母

    给定一个单词,你需要判断单词的大写使用是否正确。

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

    1. 全部字母都是大写,比如"USA"。
    2. 单词中所有字母都不是大写,比如"leetcode"。
    3. 如果单词不只含有一个字母,只有首字母大写, 比如 "Google"。

    否则,我们定义这个单词没有正确使用大写字母。

    示例 1:

    输入: "USA"
    输出: True
    

    示例 2:

    输入: "FlaG"
    输出: False
    

    注意: 输入是由大写和小写拉丁字母组成的非空单词。

    解答:利用python3中字符串的内置方法解答即可得出答案

    class Solution:
        def detectCapitalUse(self, word: str) -> bool:
            # if word.upper() == word:
            #     return True
            # elif word.lower() == word:
            #     return True
            # elif word.capitalize() == word:
            #     return True
            # else:
            #     return False
            return word.upper() == word or word.lower() == word or word.capitalize() == word
    
  • 相关阅读:
    POJ 1328 Radar Installation
    POJ 1700 Crossing River
    POJ 1700 Crossing River
    poj 3253 Fence Repair (贪心,优先队列)
    poj 3253 Fence Repair (贪心,优先队列)
    poj 3069 Saruman's Army(贪心)
    poj 3069 Saruman's Army(贪心)
    Redis 笔记与总结2 String 类型和 Hash 类型
    数据分析方法有哪些_数据分析方法
    数据分析方法有哪些_数据分析方法
  • 原文地址:https://www.cnblogs.com/raynduan/p/10940392.html
Copyright © 2011-2022 走看看