【发布时间】:2017-10-13 15:04:19
【问题描述】:
目前在做Hackerrank.com的30天代码,选择用C++做。
![第 6 天]https://imgur.com/a/euGFr
上面的图像是问题以及我的解决方案和输出,尽管与他们的输出匹配,但它表明它是不正确的。我是 C++ 新手,想要一些关于如何改进代码的提示。我意识到有许多不同的方式来重写它,但只是想对我的想法提出批评,以及它是否过于复杂或给定问题的合适解决方案。谢谢
对于那些看不到图像的人来说,这是一个问题:
任务
给定一个长度为 N 且索引为 0 到 N-1 的字符串 S,将其偶数索引字符和奇数索引字符作为空格分隔的字符串打印在一行上。
输入是测试用例的数量(t),后跟“t”个字符串。
输入
2
黑客
排名
输出
Hce akr
Rn ak
我的代码
#include <iostream>
using namespace std;
int main() {
int testCases;
cin >> testCases;
for(int i=0;i<testCases;i++)
{
char* evenArr = new char[0];
char* oddArr = new char[0];
string test;
cin >> test;
for(int j=0;j<test.length();j++)
{
if(j%2==0)
{
evenArr[j]=test[j];
cout<<evenArr[j];
}
else
oddArr[j]=test[j];
}
cout<<" ";
for(int k = 0;k<sizeof(oddArr);k++)
{
cout << oddArr[k];
}
cout<<endl;
delete[] evenArr;
delete[] oddArr;
}
return 0;
}
【问题讨论】:
-
new char[0]好像不太合适。 -
调试,调试,调试...
-
如果您试图使问题尽可能难以理解,那么您就成功了。
-
@RiberoD07 这个输出 rnk ak 是错误的。应该有 rn ak
-
邮政编码和文字,而不是屏幕快照。防火墙阻止我查看您的快照。