题目标题:
判断短字符串中的所有字符是否在长字符串中全部出现
接口说明:
原型: boolIsAllCharExist(char* pShortString,char* pLongString);
输入参数:
char* pShortString: 短字符串
char* pLongString: 长字符串
知识点: 字符串,循环,指针
输入:
短字符串
长字符串
输出:
true - 表示短字符串中所有字符均在长字符串中出现
false- 表示短字符串中有字符在长字符串中没有出现
样例输入:
bc
abc
样例输出:
true
代码:
#include <iostream>
#define MAX 100
using namespace std;
int main()
{
char str1[MAX], str2[MAX];
cin.getline(str1, MAX);
cin.getline(str2, MAX);
int len1 = strlen(str1), len2 = strlen(str2), i, freq1[26] = { 0 }, freq2[26] = { 0 };
for (i = 0; i < len1; i++)
if (str1[i]>='A'&&str1[i]<='Z')
freq1[str1[i] - 'A'] = 1;
else if (str1[i] >= 'a'&&str1[i] <= 'z')
freq2[str1[i] - 'a'] = 1;
for (i = 0; i < len2; i++)
if (str2[i] >= 'A'&&str2[i] <= 'Z')
{
if (freq1[str2[i] - 'A'] == 1)
freq1[str2[i] - 'A'] = 0;
}
else if (str2[i] >= 'a'&&str2[i] <= 'z')
{
if (freq2[str2[i] - 'a'] == 1)
freq2[str2[i] - 'a'] = 0;
}
for (i = 0; i < 26; i++)
if (freq1[i] != 0 || freq2[i] != 0)
{
cout << "false" << endl;
return 0;
}
cout << "true" << endl;
return 0;
}
得分 | 运行时间 | 内存 | 复杂度 | 最大嵌套深度 |
100(100) | 16ms | 2040KB | 16 | 4 |