水题,都能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