题目如下:

解题思路:本题难度不太大,对时间复杂度也没有很高的要求。我的做法是用一个字典来保存每个字符出现的次数,用正数1记录标记secret中出现的字符,用负数1记录guess中出现的字符,这样每出现一次正负抵消,即表示出现了一次cow。

代码如下:

class Solution(object):
def getHint(self, secret, guess):
"""
:type secret: str
:type guess: str
:rtype: str
"""
dic = {}
bull = 0
cow = 0
for i in xrange(len(secret)):
if secret[i] == guess[i]:
bull += 1
else:
if dic.has_key(secret[i]):
if dic[secret[i]] < 0:
cow += 1
dic[secret[i]] += 1
else:
dic[secret[i]] = 1 if dic.has_key(guess[i]):
if dic[guess[i]] > 0:
cow += 1
dic[guess[i]] -= 1
else:
dic[guess[i]] = -1 if dic[guess[i]] == 0:
del dic[guess[i]]
if dic[secret[i]] == 0:
del dic[secret[i]] return str(bull) + 'A' + str(cow) + 'B'

最新文章

  1. 整合TabBarController与NavigationController
  2. cordova添加platform
  3. 机器学习&amp;数据挖掘笔记_20(PGM练习四:图模型的精确推理)
  4. 基于MINA构建简单高性能的NIO应用
  5. sharepoint 2010 切换域
  6. ASP.NET - 演练:创建网页以显示 XML 数据
  7. 【ACM】魔方十一题
  8. 《Genesis-3D开源游戏引擎--横版格斗游戏制作教程03:碰撞检测》
  9. C语言编译过程(转)
  10. Redis设置Key的过期时间 – EXPIRE命令
  11. html入门1
  12. Oracle数据库自带表空间的详细说明
  13. self.location.href
  14. Linux下调试.Net core(1):lldb的安装
  15. SpringBoot几个重要的事件回调、监听机制
  16. linux 取消笔记本触摸键
  17. CentOS 下安装 Node.js 8.11.3 LTS Version
  18. CentOS7上安装与配置Tomcat8与MySQL5.7
  19. 用SDWebImage加载FLAnimatedImage
  20. Python3基础 sys.path 查看搜索路径变量

热门文章

  1. 阶段3 1.Mybatis_07.Mybatis的连接池及事务_6 mybatis中的事务原理和自动提交设置
  2. 【Java安全】关于Java中常用加密/解密方法的实现
  3. Java的in.nextInt()和in.nextLine()方法的具体内涵
  4. Java多线程学习——例子:模拟电影院抢座位
  5. rename批量修改文件名
  6. 配置数据源和jdbc的使用
  7. java 接入微信 spring boot 接入微信
  8. Spark-Core RDD中函数(变量)传递
  9. 安装CentOS7虚拟机
  10. 又是图论.jpg