考え方遍歴文字列a aにおける各文字の出現回数を計算する.
bにおける同一文字の出現回数を算出する比較注意:のいずれかの文字列が空でfalseを返します. の2つの文字列の長さは等しくなく、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;
}