9.20 度小满金融测试开发笔试Python题解

1. 涂颜色,输入有的颜色和要涂的颜色,输出最多能涂几个
思路:两个字典计数
s = input()
t = input()
scount = {}
tcount = {}
cnt = 0
for i in s:
    scount[i] = scount.get(i,0) + 1
for i in t:
    tcount[i] = tcount.get(i,0) + 1
for i in tcount:
    if i in scount:
        cnt += min(scount[i],tcount[i])
print(cnt)
2. 字符串,每间隔3个的子串只能有同一个位置不同,例如ABE、ABC、ABD相似,ABE、ABC、ACE不相似,判断整个字符串是否满足条件
思路:先将字符串每三个分隔,找出不同的位置(012中的一个),则剩余位置必须相同,思路有点笨笨,如果有大佬方法更好还请分享
#判断是否相似的函数
def isValid(a,b,pos):
    for i in pos:
        if a[i] != b[i]:
            return False
    return True

n = int(input())
for _ in range(n):
    s = input()
    slist = []
    #分割字符串
    for i in range(0,len(s),3):
        slist.append(s[i:i+3])
    #找出不同的位置,剩余位置必须相同
    pos = [0,1,2]
    flag = False
    for i in range(1,len(slist)):
        if slist[i] != slist[0]:
            for j in range(3):
                if slist[i][j] != slist[0][j]:
                    pos.remove(j)
                    flag = True
                    break
        if flag:
            break
    #子串必须全部相似
    flag2 = True
    for i in range(1,len(slist)):
        if not isValid(slist[0],slist[i],pos):
            flag2 = False
            break
    if flag2:
        print("Yes")
    else:
        print("No")


#笔试题目##度小满#
全部评论
第一道可以用集合的交集做吧
点赞 回复
分享
发布于 2020-09-20 22:37

相关推荐

头像 头像
03-05 22:00
C++
点赞 评论 收藏
转发
2 3 评论
分享
牛客网
牛客企业服务