鱼C论坛

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

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

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

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

使用道具 举报

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

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

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

  12.         return True

  13. if __name__ == '__main__':
  14.     A = 'ABCD'
  15.     B = 'AABC'
  16.     cs = CompareString()
  17.     print(cs.compare(A, B))
复制代码

评分

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

查看全部评分

小甲鱼最新课程 -> https://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

查看全部评分

小甲鱼最新课程 -> https://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

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-25 23:33:00 | 显示全部楼层
  1. def echo(A,B):
  2.         A , B = list(A),list(B)
  3.         for i in B:
  4.                 if i in A:
  5.                         A.remove(i)
  6.                 else:
  7.                         return False
  8.         return True
复制代码

评分

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

查看全部评分

小甲鱼最新课程 -> https://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

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-26 07:07:46 | 显示全部楼层
  1. def per(A,B):
  2.     for i in range(len(B)):
  3.         if B[i] not in A:
  4.             print('False')
  5.             break
  6.     print('True')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-26 08:40:42 | 显示全部楼层

  1. def kao(A, B):

  2.     alst, blst = list(A), list(B)
  3.     alst.sort()
  4.     blst.sort()
  5.     beg = 0
  6.     a = ''.join(alst)
  7.     for i in blst:
  8.         z=a.find(i, beg)
  9.         if z >= 0:
  10.             beg = z + 1
  11.         else:
  12.             return False
  13.     else:
  14.         return True

  15. A = "ABCD"
  16. B = "ABC"
  17. print(kao(A, B))
复制代码
小甲鱼最新课程 -> https://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

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

  6. fun(A='ABCD',B='AABC')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-26 14:57:34 | 显示全部楼层
  1. def pick(A,B):
  2.         a_list=list(A)
  3.         for i in B:
  4.                 try :
  5.                         a_list.remove(i)
  6.                 except:
  7.                         return False
  8.         return True
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

这题可以,但是你要提供测试数据
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

恭喜通过!

执行用时:101 ms
小甲鱼最新课程 -> https://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
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

恭喜通过!

执行用时:151 ms
小甲鱼最新课程 -> https://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
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

输入:A = "ABCD", B = "AABC"
输出:True
预期结果:False
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

恭喜通过!

执行用时:101 ms
小甲鱼最新课程 -> https://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
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

输入:A = "ABCD", B = "AABC"
输出:True
预期结果:False
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-9 00:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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