所以这个函数如何工作是如果n2是n1的置换,它假设返回1. n2是n1的置换,如果它可以形成的话通过重新排列n1的数字。 (I.E.27654是743526的置换)。请解释这个置换算法是如何工作的以及这个回文算法是如何工作的
我不明白发生了什么事如果有人可以逐行解释我会很感激,谢谢。
int is_permutation_division (unsigned long n1, unsigned long n2)
{
int a[10] = {0,0,0,0,0,0,0,0,0,0};
size_t i;
while (n1 != 0)
{
a[n1 % 10]++; // Edit: little syntax error
n1 /= 10;
}
while (n2 != 0)
{
a[n2 %10]--;
n2 /= 10;
}
for (i=0; i<10; i++)
{
if (a[i] != 0)
{
return 0;
}
}
return 1;
}
这个下一个函数测试一个字符串是否是回文。一个词是回文,如果它的拼写向后相同(即赛车rac ecar)
我有一条关于我评论过的一条线的问题。我只想知道它的j-1是否因为你不想处理空字符
int is_palindrome(const char s[])
{
size_t i,j;
for (i=0; j<strlen(s); i<j; i++; j--)
{
if(s[i] != s[j-1]) /*is it j-1 because you don't want to check the null character? */
{
return 0;
}
}
return 1;
}
是的,它因为你不想检查空字符。 – Wazaaaap
我认为第一个应该是']而不是''' – Wazaaaap
是的,你是对的谢谢 – noname