- 题目:https://leetcode.com/problems/bulls-and-cows/
- 思路:
- 这个题我做了2h多,看了好久没有理解题意。其实是说guess里面数字和位置都对的个数,guess里面数字对位置不对的个数。secret里面有5个1,那么guess里面有10个1位置都不对,那b_num=5
- 思路:先统计正确数字和正确位置;然后在错误位置上统计guess正确数字(正确有数量限制)
- 坑:
- 没看懂题目
- vector删除用v.erase(v.begin()+index)
- 代码:
class Solution { public: string getHint(string secret, string guess) { // A 多少个位置和数字都对, B多少个数字对位置错 int a_num = 0; int b_num = 0; vector<int> temp; for(int i = 0; i < 10; i++) { temp.push_back(0); } for (int x = 0; x < secret.length(); x++) { int num = secret[x] - '0'; if (secret[x] == guess[x]) { a_num++; } else { temp[num]++; } } /*for(int i = 0; i < 10; i++) { cout << i << ": " << temp[i] << endl; }*/ for (int x = 0; x < secret.length(); x++) { int num = guess[x] - '0'; if (secret[x] != guess[x]) { if (temp[num] > 0) { temp[num]--; b_num++; } } } return to_string(a_num)+"A"+to_string(b_num)+"B"; } };
299. Bulls and Cows
最新推荐文章于 2021-10-08 07:25:11 发布
