蓝桥杯等考Python(彩票)

彩票
有一种特别的彩票,中奖号码用7个小写英文字母表示。你自选7个小写字母投注(同一种字母可以重复选),只要每个字母出现的次数都与中奖号码
相同,无论顺序如何,都算中奖。
例如:
中奖号码是abbaccd,你的自选号码是ababccd,中奖,因为每个字母出现的次数都相同;
中奖号码是abbaccd,你的自选号码是aaabccd,没中奖,因为a、b字母出现的次数都不相同;
中奖号码是abbaccd,你的自选号码是ababccm,没中奖,因为中奖号码和自选号码不同。
输入两个字符串s和t,分别代表中奖号码和你的自选号码。请编写一个程序来判断你是否中奖,中奖输出“yes”,没中奖输出“no”。
输入:
第一行一个字符串s,由7个小写字母组成,字母可能有重复,代表中奖号码;
第二行一个字符串t,由7个小写字母组成,字母可能有重复,代表你的自选号码。
输出:
一个字符串,代表你是否中奖,中奖输出“yes”,没中奖输出“no”。
输入样例1:
abbaccd
ababccd
输出样例1:
yes

输入样例2:
abbaccd
aaabccd
输出样例2:
no

参考答案:

#参考程序1:
s = input()
t = input()
b = True
dic = {}
for i in s: #遍历s,记录每个字母出现次数
    dic[i] = s.count(i)
for i in t: #遍历t,将每个字母出现次数对应减少
    if i in dic.keys():
        dic[i] -= 1
    else:
        b = False
for i in dic.values(): #检查字典是否每项都大于等于0
    if i < 0:
        b = False
if b == True:
    print('yes')
else:
    print('no')
#参考程序2:
s = input()
t = input()
a = [0] * 26
for i in range(len(s)):
    a[ord(s[i]) - ord('a')] += 1
for i in range(len(t)):
    a[ord(t[i]) - ord('a')] -= 1
b = True
for i in range(26):
    if a[i] != 0:
        b = False
        break
if b == True:
    print("yes")
else:
    print("no")
#参考程序3:
s = input()
t = input()
_s = list(s)
_t = list(t)
_s.sort()
_t.sort()
if _s == _t:
    print('yes')
else:
    print('no')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值