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")