zoukankan      html  css  js  c++  java
  • 【100Days of 100 line Code】8 day

    水题,都能AC。

    #宝石与石头

    给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。
    J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a""A"是不同类型的石头。
    输入: J = "aA", S = "aAAbbbb"
    输出 3

    代码:

    class Solution(object):
        def numJewelsInStones(self, J, S):
            """
            :type J: str
            :type S: str
            :rtype: int
            """
            lenght = len(S)
            for i in range(len(J)):
                while J[i] in S:
                    S = S.replace(J[i],'') 
            return lenght-len(S)

    #转换成小写字母

    实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。
    输入: "Hello"
    输出: "hello"

    代码

    class Solution:
        def toLowerCase(self, str):
            """
            :type str: str
            :rtype: str
            """
            num = ""
            for s in str:
                if ord(s) >= ord('A') and ord(s) <= ord('Z'):
                    num += chr(ord(s) - ord('A') + ord('a'))
                else:
                    num += s
            return num

    #反转图像

    给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。
    水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, 1]。
    反转图片的意思是图片中的 0 全部被 1 替换, 1 全部被 0 替换。例如,反转 [0, 1, 1] 的结果是 [1, 0, 0]。
    输入: [[1,1,0],[1,0,1],[0,0,0]]
    输出: [[1,0,0],[0,1,0],[1,1,1]]
    解释: 首先翻转每一行: [[0,1,1],[1,0,1],[0,0,0]];
         然后反转图片: [[1,0,0],[0,1,0],[1,1,1]]

     代码

    class Solution(object):
        def flipAndInvertImage(self, A):
            """
            :type A: List[List[int]]
            :rtype: List[List[int]]
            """
            lenght = len(A)
            for i in range(lenght):
                A[i]=A[i][::-1]
                for j in range(len(A[i])):
                    if A[i][j] == 1:
                        A[i][j] = 0
                    else :
                        A[i][j] = 1 
            return A

    #柠檬水找零

    在柠檬水摊上,每一杯柠檬水的售价为 5 美元。
    顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。
    每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。
    注意,一开始你手头没有任何零钱。
    如果你能给每位顾客正确找零,返回 true ,否则返回 false 。
    输入:[5,5,5,10,20]
    输出:true
    解释:
    前 3 位顾客那里,我们按顺序收取 3 张 5 美元的钞票。
    第 4 位顾客那里,我们收取一张 10 美元的钞票,并返还 5 美元。
    第 5 位顾客那里,我们找还一张 10 美元的钞票和一张 5 美元的钞票。
    由于所有客户都得到了正确的找零,所以我们输出 true。

    代码

    class Solution(object):
        def lemonadeChange(self, bills):
            """
            :type bills: List[int]
            :rtype: bool
            """
            money_5 = 0
            money_10 = 0
            money_20 =0
            for i in range(len(bills)):
                buy = bills[i]
                if buy == 5 :
                    money_5 += 1
                elif buy == 10 :
                    money_10 += 1
                    if money_5 == 0:
                        return False
                    else :
                        money_5 -= 1
                elif buy == 20:
                    money_20 += 1
                    if money_10 == 0:
                        if money_5 >= 3 :
                            money_5 -= 3
                        else :
                            return False
                    else:
                        if money_5 == 0:
                            return False
                        else :
                            money_5 -= 1
                            money_10 -= 1
            return True
  • 相关阅读:
    关于网站的性能瓶颈——(阅读笔记)
    Servlet原理解析
    配置Ubuntu Server高速aptget源
    字节对齐
    linux学习笔记—之—linux文件管理
    JavaWeb过滤器Filter
    C语言编程程序的内存布局
    修改Linux下MySQL编码
    C语言中——关于typedef
    linux学习笔记—之—LVM管理
  • 原文地址:https://www.cnblogs.com/mygzhh/p/9326819.html
Copyright © 2011-2022 走看看