鱼C论坛

 找回密码
 立即注册
楼主: zltzlt

[已解决]Python:每日一题 263

[复制链接]
发表于 2019-10-25 21:46:41 | 显示全部楼层
zltzlt 发表于 2019-10-25 21:36
A 中只有一个 A,B 中有两个 A

那就拜托说得形象些吧,比如:A 字符串是某物品的标签的库存,其中的某一个物品的标签出现多少次,就代表该物品的数量,B 字符串是预计要从 A 中取出的物品,同样出现次数即数量,判断能否全部成功取出。
这样的感觉。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-25 22:11:36 | 显示全部楼层
class CompareString:
    def __init__(self):
        self.keys = [item for item in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ']
        self.comp_dict = dict.fromkeys(self.keys, 0)

    def compare(self, A, B):
        for letter in A:
            self.comp_dict[letter] += 1

        for letter in B:
            self.comp_dict[letter] -= 1
            if self.comp_dict[letter] < 0:
                return False

        return True

if __name__ == '__main__':
    A = 'ABCD'
    B = 'AABC'
    cs = CompareString()
    print(cs.compare(A, B))

评分

参与人数 1荣誉 +1 鱼币 +1 贡献 +1 收起 理由
zltzlt + 1 + 1 + 1

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-25 22:31:35 | 显示全部楼层
def hs1(a, b):
    a1 = list(a)
    b1 = list(b)
    for c in b1:
        if c in a1:
            a1.remove(c)
        else:
            return print(False)
    return print(True)

a = input("输入字符串A:")
b = input("输入字符串B:")
hs1(a, b)

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
zltzlt + 1 + 1

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-25 23:00:19 | 显示全部楼层
本帖最后由 阴阳神万物主 于 2019-10-25 23:01 编辑

呐,不如咱们开个困难模式吧?
咱们目标是从某个神奇仓库中取出一些东西。字符串 A 就是仓库的库存,每一样东西都用首字母大写的单词(单词中不出现空格,有空格的单词空格用短横线替换,比如:Ice cream 在字符串中为 Ice-cream)表示,每个单词用空格分开,在字符串中出现的次数即这个东西的数量
字符串 B 是想要取出的东西的表单,格式与 A 相同
示例:
A = "Ball Ball Ball Knife Knife Condom Ice-cream",B = "Ball Condom Ball"
输出:True

审核正误,就交给楼主怎样?
楼主允许了的话,这题成立,明天我就把我的代码贴出来。

评分

参与人数 1荣誉 +1 贡献 +2 收起 理由
zltzlt + 1 + 2

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-25 23:33:00 | 显示全部楼层
def echo(A,B):
        A , B = list(A),list(B)
        for i in B:
                if i in A:
                        A.remove(i)
                else:
                        return False
        return True

评分

参与人数 1贡献 +1 收起 理由
zltzlt + 1

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-26 00:40:54 | 显示全部楼层
def solution(A: str, B:str) -> bool:
    import collections
    AC = collections.Counter(A)
    BC = collections.Counter(B)

    for i in BC:
        v = AC.get(i, 0)
        if v == 0 or v<BC[i]:
            return False

    return True

评分

参与人数 1荣誉 +1 鱼币 +1 贡献 +1 收起 理由
zltzlt + 1 + 1 + 1

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-26 07:07:46 | 显示全部楼层
def per(A,B):
    for i in range(len(B)):
        if B[i] not in A:
            print('False')
            break
    print('True')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-26 08:40:42 | 显示全部楼层
def kao(A, B):

    alst, blst = list(A), list(B)
    alst.sort()
    blst.sort()
    beg = 0
    a = ''.join(alst)
    for i in blst:
        z=a.find(i, beg)
        if z >= 0:
            beg = z + 1
        else:
            return False
    else:
        return True

A = "ABCD"
B = "ABC"
print(kao(A, B))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-26 11:07:12 | 显示全部楼层
def pick(A,B):
        a_list=list(A)
        b_list=list(B)
        for i in b_list:
                try :
                        a_list.remove(i)
                except:
                        return False
        return True

评分

参与人数 1荣誉 +1 鱼币 +1 贡献 +1 收起 理由
zltzlt + 1 + 1 + 1

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-26 11:21:17 | 显示全部楼层
def fun(A,B):
    if sum(map(lambda x:x in A,B))==len(B):
        print('True')
    else:
        print('False')

fun(A='ABCD',B='AABC')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-26 14:57:34 | 显示全部楼层
def pick(A,B):
        a_list=list(A)
        for i in B:
                try :
                        a_list.remove(i)
                except:
                        return False
        return True
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-26 15:42:30 | 显示全部楼层
阴阳神万物主 发表于 2019-10-25 23:00
呐,不如咱们开个困难模式吧?
咱们目标是从某个神奇仓库中取出一些东西。字符串 A 就是仓库的库存,每一 ...

这题可以,但是你要提供测试数据
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-26 15:44:20 | 显示全部楼层

恭喜通过!

执行用时:101 ms
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-26 15:50:51 | 显示全部楼层
路经此处 发表于 2019-10-25 22:31
def hs1(a, b):
    a1 = list(a)
    b1 = list(b)

恭喜通过!

执行用时:202 ms
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-26 15:51:23 | 显示全部楼层

恭喜通过!

执行用时:151 ms
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-26 15:52:41 | 显示全部楼层
战场原 发表于 2019-10-26 00:40
def solution(A: str, B:str) -> bool:
    import collections
    AC = collections.Counter(A)

恭喜通过!

执行用时:101 ms
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-26 15:55:58 | 显示全部楼层

输入:A = "ABCD", B = "AABC"
输出:True
预期结果:False
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-26 15:56:34 | 显示全部楼层

恭喜通过!

执行用时:101 ms
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-26 16:00:02 | 显示全部楼层
findland 发表于 2019-10-26 11:07
def pick(A,B):
        a_list=list(A)
        b_list=list(B)

恭喜通过!

执行用时:101 ms
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-26 16:00:44 | 显示全部楼层

输入:A = "ABCD", B = "AABC"
输出:True
预期结果:False
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 07:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表