int scrambled( int a[], int b[], int len )
{
int check[len];
for ( int i=0; i<len; i ++)
{
check[i] = 0;
}
for ( int i=0; i<len; i++ )
{
int flag = 0;
for ( int j=0; j<len; j++)
{
if( b[j] == a[i] && check[j] != 1 && flag == 0)
{
check[j] = 1;
flag = 1;
}
}
if (flag = 0)
{
return 0;
}
else
{
flag = 0;
}
}
return 1;
}
int main( void )
{
int a[3] = {10, 15, 20};
int b[3] = {10, 20, 15};
if( scrambled( a, b, 3 ) == 1 )
{
printf( "b is a scrambled version of a\n" );
} else {
printf( "b has different contents to a\n" );
}
return 0;
}
这是我检查任何两个数组的程序,看看这两个数组是否是彼此的加扰版本,或者它们是否包含不同的内容。
我不允许操纵main
函数,因此我只允许使用顶部的scrambled
函数进行调整。
但出于某种原因,我的功能一直在说难以解决的情况,我不知道如何解决这个问题?