题解 | #字符串字符匹配#
字符串字符匹配
https://www.nowcoder.com/practice/22fdeb9610ef426f9505e3ab60164c93
//简单利用哈希的思想,代码上可以简化
#include <stdio.h>
#include<string.h>
int main()
{
int arr1[26]={0},i=0;
char S[200],T[200];
gets(S);
gets(T);
int sz=strlen(S);
//巧妙利用一个整型数组的下标,小写字母-97对应下标的数组值置为1
for(i=0;i<sz;i++)
{
if(arr1[S[i]-97]==0)
{
arr1[S[i]-97]=1;
}
}
sz=strlen(T);
//遍历T字符串,同理,小写字母-97对应下标的数组值置为2(也可以置回0)
for(i=0;i<sz;i++)
{
if(arr1[T[i]-97]!=2)
{
arr1[T[i]-97]=2;
}
}
//检查一遍数组,如果还有1剩余,说明T中不完全包含S的字母
for(i=0;i<26;i++)
{
if(arr1[i]==1)
{
printf("false\n");
return 0;
}
}
//遍历结束,如果继续执行说明全包含
printf("true\n");
return 0;
}
查看11道真题和解析