我被指派了一项用python解决的任务,需要帮助,因为我无法获得输出,以下是问题:-
每个人都喜欢字母汤。当然,你想知道你是否能从你碗里找到的字母中构造出一条信息
您的任务:
编写一个以两个字符串作为输入的函数:
假设:
该函数应确定您是否可以使用在您的汤碗中找到的字母来编写消息。函数应相应地返回True或False
努力使你的工作效率更高。请使用Big-O表示法解释函数运行所需的时间,即消息长度(m)和汤碗中的字母数
以下是我尝试过的代码,但它没有按照任务工作:-
def sol(alpha):
srt = sorted(list(alpha))
lwcase = sorted(list(alpha.lower()))
upcase = []
result = ''
for i in srt:
if i.isupper():
upcase.append(i)
for e in lwcase:
if upcase.count(e.upper()) != 0:
result += e.upper()
upcase.pop(upcase.index(e.upper()))
else:
result += e
return result
it = input("Enter a word please")
print(sol(it))
我想你的老师希望你自己写一个scratch算法。然而,知道如何使用标准库的模块是一项非常有用的技能。下面是一个使用^{} 的解决方案,它是
dict
的一个子类代码
测验
解释
首先,处理步骤。
.lower()
将消息放在小写字母中,因此'Hello World'
和hello world
是等价的,see the documentation李>''.join(s.split())
删除字符串s
,see this question中的所有空白李>然后,计数器:
collections.Counter(seq)
生成一个字典,将seq
的元素映射到它们的出现次数,例如Counter('helloworld') == {'l': 3, 'o': 2, 'h': 1, 'e': 1, 'w': 1, 'r': 1, 'd': 1}
李>all()
是一个内置函数,用于检查谓词对于序列的所有元素是否为真,see the doc李>all(n <= soup_count[k] for k,n in msg_count.items())
检查消息中出现的每个字符n
的计数k
是否低于(或等于)soup中字符k
的计数李>以下是我的解决方案(见评论):
相关问题 更多 >
编程相关推荐