- 思路
- 遍历字符串a
- 计算a中每个字符出现的次数
- 计算b中相同字符的出现次数
- 比较
- 注意:
- 任一字符串为空返回false。
- 两个字符串长度不等,可直接返回false。
- 复杂度率高n*n,降低复杂度的方法:
- 使用哈希表,记录字符和出现次数。
- 使用数组或者容器,acsII个数为256,申请256的空间即可,记录字符出现的次数。
bool f(char *str1,char *str2)
{
if (strlen(str1)!=strlen(str2))
{
return 0;
}
if (*str1=='\0'||*str2=='\0')
{
return 0;
}
while(*str1 != '\0')
{
if (c_time(str1,*str1)!=c_time(str2,*str1))
{
return 0;
}
str1++;
}
return 1;
}
int c_time(char *str,char c)
{
int sum = 0;
if (!str)
{
return sum;
}
while(*str != '\0')
{
if (*str == c)
{
sum++;
}
str++;
}
return sum;
}