gpt4 book ai didi

c - Spoj ABCD 错误答案

转载 作者:行者123 更新时间:2023-11-30 20:41:11 28 4
gpt4 key购买 nike

昨天我正在解决 Spoj 问题 ABCD:http://www.spoj.com/problems/ABCD/

我得到了错误的答案,但我真的不明白为什么。我已经尝试了论坛和评论中的所有测试用例。是否接受任何有效的解决方案或他们文件中唯一的解决方案。

逻辑:

  1. 计算 row1 中每个字符的出现次数。
  2. 逐一填写第2行,检查上面的字符和左边的字符,并计数

我的代码是:

#include<stdio.h>
int i;
int main()
{
int n;
int counts[4] = {0};
char row1[1000000], row2[1000000];
scanf("%d", &n);
scanf("%s", row1);

while(row1[i])
{
counts[row1[i] - 'A']++;
i++;
}

i = 0;
if(counts[0] < n && row1[i] != 'A')
{
row2[i] = 'A';
counts[0]++;
}
else if(counts[1] < n && row1[i] != 'B')
{
row2[i] = 'B';
counts[1]++;
}
else if(counts[2] < n && row1[i] != 'C')
{
row2[i] = 'C';
counts[2]++;
}
else
{
row2[i] = 'D';
counts[3]++;
}
i++;
while(i < (2 * n))
{
if(counts[0] < n && row1[i] != 'A' && row2[i - 1] != 'A')
{
row2[i] = 'A';
counts[0]++;
}
else if(counts[1] < n && row1[i] != 'B' && row2[i - 1] != 'B')
{
row2[i] = 'B';
counts[1]++;
}
else if(counts[2] < n && row1[i] != 'C' && row2[i - 1] != 'C')
{
row2[i] = 'C';
counts[2]++;
}
else
{
row2[i] = 'D';
counts[3]++;
}

i++;
}
row2[i] = '\0';
printf("%s", row2);
return 0;
}

我已经调试了几个小时,但不知道要调试什么。甚至SPOJ论坛也没有找到我的解决方案。

最佳答案

嘿,我做了几乎同样的事情,也得到了 WA :P 这是这个逻辑的问题。

尝试这个测试用例3ABACAD

输出可以是:BCDBDC

关于c - Spoj ABCD 错误答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16683712/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com