Hackerrank 中的 C 有什么不同(得到不同的输出)吗?
Is there something different with C in Hackerrank(getting different output)?
我一直在尝试在 Hackerrank 上进行情书神秘挑战。
规则如下:https://www.hackerrank.com/challenges/the-love-letter-mystery
这是我的解决方案:
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
#define MAX 1000
int check_palindrome(char *A)
{
int i = 0, j;
while(A[i])
i++;
i -= 1;
for(j = 0; j <= i; j++)
{
if(A[j] != A[i - j])
return 0;
}
return 1;
}
int love_letter(char *A)
{
int i = 0;
int j;
int times;
while(A[i])
i++;
i -= 1;
if(i == 0)
return 0;
if(check_palindrome(A))
return 0;
for(j = i; j >= 0; j--)
{
while(A[j] != 'a')
{
if(check_palindrome(A))
return times;
else
{
A[j] -= 1;
times += 1;
}
}
}
return times;
}
int main() {
int t, i;
char a[MAX];
scanf("%d", &t);
for(i = 0; i < t; i++)
{
scanf("%s", a);
printf("%d\n", love_letter(a));
}
return 0;
}
在我的计算机上进行测试时,我得到了正确的输出。但是,当我尝试 运行 Hackerrank 上的代码时,它告诉我我的程序总是给出以下输出:
0
0
0
0
那当然是错误的,它没有通过测试用例。但这是为什么呢? C或其他东西有什么不同吗?还是只是网站的问题?或者用我的代码?
至少,您似乎忘记了初始化变量"times"。
就实际算法而言,请记住要使字母匹配,您可以递减其中一个(或两个)。我认为你没有妥善处理所有案件。
我一直在尝试在 Hackerrank 上进行情书神秘挑战。 规则如下:https://www.hackerrank.com/challenges/the-love-letter-mystery
这是我的解决方案:
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
#define MAX 1000
int check_palindrome(char *A)
{
int i = 0, j;
while(A[i])
i++;
i -= 1;
for(j = 0; j <= i; j++)
{
if(A[j] != A[i - j])
return 0;
}
return 1;
}
int love_letter(char *A)
{
int i = 0;
int j;
int times;
while(A[i])
i++;
i -= 1;
if(i == 0)
return 0;
if(check_palindrome(A))
return 0;
for(j = i; j >= 0; j--)
{
while(A[j] != 'a')
{
if(check_palindrome(A))
return times;
else
{
A[j] -= 1;
times += 1;
}
}
}
return times;
}
int main() {
int t, i;
char a[MAX];
scanf("%d", &t);
for(i = 0; i < t; i++)
{
scanf("%s", a);
printf("%d\n", love_letter(a));
}
return 0;
}
在我的计算机上进行测试时,我得到了正确的输出。但是,当我尝试 运行 Hackerrank 上的代码时,它告诉我我的程序总是给出以下输出:
0
0
0
0
那当然是错误的,它没有通过测试用例。但这是为什么呢? C或其他东西有什么不同吗?还是只是网站的问题?或者用我的代码?
至少,您似乎忘记了初始化变量"times"。
就实际算法而言,请记住要使字母匹配,您可以递减其中一个(或两个)。我认为你没有妥善处理所有案件。