首页 > 其他 > 详细

leetcode299

时间:2019-10-04 16:23:45      阅读:60      评论:0      收藏:0      [点我收藏+]
 1 class Solution:
 2     def getHint(self, secret: str, guess: str) -> str:
 3         n1 = len(secret)
 4         n2 = len(guess)
 5         A,B = 0,0
 6         dicA,dicB= {},{}
 7         for i in range(n1):
 8             cur = secret[i]
 9             tar = guess[i]
10             if cur == tar:
11                 A += 1
12             else:    
13                 if cur not in dicA:
14                     dicA[cur] = 1
15                 else:
16                     dicA[cur] += 1
17                 if tar not in dicB:
18                     dicB[tar] = 1
19                 else:
20                     dicB[tar] += 1
21         for k,v in dicB.items():
22             if k in dicA:
23                 B += min(v,dicA[k])
24         return str(A) + A + str(B) + B

两次遍历,第一次先计算A,如果对应位置的字符一样,则A+1;如果对应位置的字符不同,则分别计算两个串不匹配字符的数量。

第二次计算B,在不匹配的字符中,两个字典都出现的,就符合B,其值为这个字符在两个字典中的值较小的。

leetcode299

原文:https://www.cnblogs.com/asenyang/p/11622363.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!