字符判断
题目描述判断字符串b的所有字符是否都在字符串a中出现过,a、b都是可能包含汉字的字符串。b中重复出现的汉字,那么a中也要至少重复相同的次数。汉字使用gbk编码(简单的说,用两个字节表示一个汉字,高字节最高位为1的代表汉字,低字节最高位可以不为1)。
int is_include(char *a, char *b);
返回0表示没有都出现过,返回1表示都出现过。
请设计一个算法。
输入
字符串a\n字符串b |
样例输入
aaaabbbcccdddss abc |
输出
0或者1 |
样例输出
1 |
时间限制
C/C++语言:1000MS
其它语言:3000MS
|
内存限制
C/C++语言:65536KB
其它语言:589824KB
|
C语言程序实现如下:
#include <stdio.h>
#include <stdlib.h>
int is_include(char *a,char *b)
{
int i=0,j=0,flag;
while(a[i]!='\0')
{
flag=0;
if(a[i]==b[j])
{
flag=1;
j++;
if(b[j]=='\0')
return 1;
}
i++;
if(flag==1)
i=0;
}
return 0;
}
int main()
{
int a[100],b[100];
gets(a);
gets(b);
printf("%d\n",is_include(a,b));
return 0;
}
以上代码可能存在一些冗余的部分,没有进行修改,如果需要可以自行拷贝和修改。