//★题目:判断两个字符串是否互为变形词
//要求:给定两个字符串str1和str2,如果str1和str2中出现的字符种类一样且每种字符出现的次数也一样
// 那么str1与str2互为变形词。请实现函数判断两个字符串是否互为变形词
//分析:假设字符的编码值在0-255之间,申请长度为256的数组,map[a] = b 代表字符a出现了b次
// 遍历str1统计每种字符的词频,然后遍历str2,把map中的词频减下来
#include "a_string.h"//我自己定义的头文件
using namespace std;
bool isDeformation(string str1, string str2);
int main()
{
string str1 = "123";
string str2 = "231";
string str3 = "243";
cout << isDeformation(str1, str2) << endl;
cout << isDeformation(str1, str3) << endl;
system("pause");
return 0;
}
bool isDeformation(string str1, string str2)
{
if (str1.empty()||str2.empty()||str1.size() != str2.size())
{
return false;
}
const char *chas1 = str1.c_str();
const char *chas2 = str2.c_str();
int map[255] = { 0 };
for (int i = 0; i < str1.size(); i++)
{
map[chas1[i]]++;
}
for (int i = 0; i < str2.size(); i++)
{
if (map[chas2[i]] == 0)
{
return false;
}
else
{
map[chas2[i]]--;
}
}
return true;
}
字符串:判断两个字符串是否互为变形词
最新推荐文章于 2022-05-16 23:03:09 发布