题目
描述
题目标题:
判断短字符串中的所有字符是否在长字符串中全部出现
详细描述:
接口说明
原型:
boolIsAllCharExist(char* pShortString,char* pLongString);
输入参数:
char* pShortString:短字符串
char* pLongString:长字符串
输入
输入两个字符串。第一个为短字符,第二个为长字符。
输出
返回值:
true - 表示短字符串中所有字符均在长字符串中出现
false- 表示短字符串中有字符在长字符串中没有出现
样例输入
bc abc
样例输出
true
思路
循环判断字符是否出现
代码
#include <iostream>
#include <string>
using namespace std;
bool IsAllCharExist(string &pShortString,string &pLongString)
{
int bits[256] {0};
bool flag=true;
//长字符映射
char* ch=&pLongString[0];//取地址
while((*ch)!='\0')
{
bits[(int)(*ch)]=1;//标记位置
ch++;//向后移
}
//短字符映射
ch=&pShortString[0];//取地址
while((*ch)!='\0')
{
if(bits[(int)(*ch)]==0) //发现不存在的元素
{
flag=false;//设置为False
break;
}
ch++;//向后移
}
return flag;
}
int main()
{
string str1,str2;
cin>>str1>>str2;
//字符串匹配
if(IsAllCharExist(str1,str2))
{
cout<<"true"<<endl;
}
else
{
cout<<"false"<<endl;
}
return 0;
}