hackerrank上的数字频率问题 [英] Digit frequency problem on hackerrank
本文介绍了hackerrank上的数字频率问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问题链接: HackerRank [ ^ ]
这是我的解决方案我想知道它有什么问题
我尝试了什么:
Problem Link : HackerRank[^]
here is my solution i want to know what's wrong with it
What I have tried:
int main()
{
int i = 0 , resultArr[10];
char buffer = 0;
do
{
scanf("%c",&buffer);
for ( i = 0 ; i < 10 ; i++)
{
if ((buffer - '0') == i)
resultArr[i]++;
}
}
while(buffer != '\n');
for ( i = 0 ; i < 10 ; i++)
printf("%d ",resultArr[i]);
return 0;
}
推荐答案
Quote:
这是我的解决方案我想知道它有什么问题
here is my solution i want to know what's wrong with it
尝试用零初始化 resultArr [10]
。它可能会有所帮助。
Try to start by initialize resultArr[10]
with zeroes. It might help.
正如 ppolymorphe 指出的那样,你需要对数组项进行零初始化。
As ppolymorphe pointed out, you need to zero-initialize your array items.
int resultArr[10] = {0};
就足够了。
请注意以下内容代码应该更快:
is just enough.
Please note the following code should be faster:
#include <stdio.h>
int main()
{
int i = 0 , resultArr[10] = {0};
char buffer = 0;
do
{
scanf("%c",&buffer);
if ( buffer >= '0' && buffer <= '9' )
++resultArr[buffer-'0'];
}
while(buffer != '\n');
for ( i = 0 ; i < 10 ; i++)
printf("%d ",resultArr[i]);
return 0;
}
这篇关于hackerrank上的数字频率问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文