299. Bulls and Cows
来源:互联网 发布:三毛梦里花落知多少txt 编辑:程序博客网 时间:2024/04/30 10:41
You are playing the following Bulls and Cows game with your friend: You write down a number and ask your friend to guess what the number is. Each time your friend makes a guess, you provide a hint that indicates how many digits in said guess match your secret number exactly in both digit and position (called "bulls") and how many digits match the secret number but locate in the wrong position (called "cows"). Your friend will use successive guesses and hints to eventually derive the secret number.
For example:
Secret number: "1807"Friend's guess: "7810"Hint:
1
bull and 3
cows. (The bull is 8
, the cows are 0
, 1
and 7
.)Write a function to return a hint according to the secret number and friend's guess, use A
to indicate the bulls and B
to indicate the cows. In the above example, your function should return "1A3B"
.
Please note that both secret number and friend's guess may contain duplicate digits, for example:
Secret number: "1123"Friend's guess: "0111"In this case, the 1st
1
in friend's guess is a bull, the 2nd or 3rd 1
is a cow, and your function should return "1A1B"
.You may assume that the secret number and your friend's guess only contain digits, and their lengths are always equal.
Credits:
Special thanks to @jeantimex for adding this problem and creating all test cases.
Subscribe to see which companies asked this question.
public class Solution { public String getHint(String secret, String guess) { int bull = 0;int cow = 0;int[] data1 = new int[10];int[] data2 = new int[10];for (int i = 0; i < secret.length(); ++i) {char c1 = secret.charAt(i);char c2 = guess.charAt(i);if (c1 == c2){bull++; continue;}data1[c1 - '0']++;data2[c2 - '0']++;}for (int i = 0; i < 10; ++i) {if (data1[i] != 0 && data2[i] != 0)cow = cow + Math.min(data1[i],data2[i]);}StringBuilder re = new StringBuilder();re.append(bull).append('A').append(cow).append('B');return re.toString(); }}
- 299. Bulls and Cows
- 299. Bulls and Cows
- 299. Bulls and Cows
- 299. Bulls and Cows
- 299. Bulls and Cows
- 299. Bulls and Cows
- 299. Bulls and Cows
- 299. Bulls and Cows
- 299. Bulls and Cows
- 299. Bulls and Cows
- 299. Bulls and Cows
- 299. Bulls and Cows
- 299. Bulls and Cows
- 299. Bulls and Cows
- 299. Bulls and Cows
- 299. Bulls and Cows
- 299. Bulls and Cows
- 299. Bulls and Cows
- MySQL数据库事务隔离级别
- 04. Oracle 11g 数据库关闭与启动
- HDU 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活【多重背包】
- 触摸屏驱动之概念介绍
- Android——蓝牙利用RSSI进行距离测算
- 299. Bulls and Cows
- 数字三角形
- JSP中用Ajax
- struts2+hibernate学习笔记
- 遍历列表,找出具体元素的索引
- 004使用一个栈对另一个栈完成排序(C++实现)
- Codeforces VK Cup 2015
- ListView及其ArrayAdapter的应用
- 量化投资-基本面模型-PVC多因素模型