题目

思路
把输入的字符串quiz过一遍,用数组记录每个字符出现的频次
然后如果遇见了quiz和guess字符串都相同的字符,对应的频次-1,match++
后续再过quiz,如果数组频次不为0且quiz[i] != guess[i],unmatch++
代码
#include<iostream>
#include<cstring>
using namespace std;
int alpha[128];
int occur[128];
int main()
{
string quiz, guess;
cin >> quiz >> guess;
memset(alpha, 0 , sizeof(alpha));
memset(occur, 0 , sizeof(occur));
int match = 0, unmatch = 0;
for(int i = 0; i < 4; i++)
{
alpha[quiz[i]]++;
if(quiz[i] == guess[i])
{
alpha[quiz[i]]--;
match++;
}
}
for(int i = 0; i < 4; i++)
{
if(alpha[guess[i]] && quiz[i] != guess[i])
{
unmatch++;
alpha[guess[i]]--;
}
}
cout << match << " " << unmatch;
}
该博客主要讨论了一种字符串匹配算法,通过遍历输入的`quiz`字符串并记录每个字符出现的频率,同时比较与`guess`字符串的相同字符,计算匹配和不匹配的数量。在遍历过程中,如果找到相同字符,会减少对应字符的频率并增加匹配计数。最后输出匹配数和不匹配数。这是一个简单的字符串比较和计数方法。
635

被折叠的 条评论
为什么被折叠?



