已經是O(N) SPACE-Tradeoff 的演算法
是程式設計上那裡有問題嗎?
#include <stdio.h>
#include <ctype.h>
int main()
{
char MyString[256];
int N,Index,Max,T,P,Temp;
scanf("%d\n",&N);
for (P = 0 ; P < N ; P++)
{
int Table[256]={0};
Index=0;
Max=0;
gets(MyString);
while ( MyString[Index]!= '\0' )
{
Temp = tolower( MyString[Index] );
if ( 'a' <= Temp && 'z' >= Temp )
{
Table[ Temp ]++;
if ( Max < Table[Temp] )
{
Max = Table[Temp ];
}
}
Index++;
}
for (T ='a' ; T <= 'z' ; T++)
{
if (Max == Table[T] )
{
printf("%c",T);
}
}
printf("\n");
}
return 0;
}
已經是O(N) SPACE-Tradeoff 的演算法
是程式設計上那裡有問題嗎?
#include
#include
int main()
{
char MyString[256];
int N,Index,Max,T,P,Temp;
scanf("%d\n",&N);
for (P = 0 ; P < N ; P++)
{
int Table[256]={0};
Index=0;
Max=0;
gets(MyString);
while ( MyString[Index]!= '\0' )
{
Temp = tolower( MyString[Index] );
if ( 'a' <= Temp && 'z' >= Temp )
{
Table[ Temp ]++;
if ( Max < Table[Temp] )
{
Max = Table[Temp ];
}
}
Index++;
}
for (T ='a' ; T <= 'z' ; T++)
{
if (Max == Table[T] )
{
printf("%c",T);
}
}
printf("\n");
}
return 0;
}
囧 下一分鐘就找到BUG了
是因為Input Buffer overflow 引起無限loop
這題目"一行就是一個測試資料,這一行可能有空白,但是至少有一個字母,一行全部的字母加起來不超過200個"很容易誤導耶
也沒有說INPUT的字串上限有多少................................... 囧
已經是O(N) SPACE-Tradeoff 的演算法
是程式設計上那裡有問題嗎?
#include
#include
int main()
{
char MyString[256];
int N,Index,Max,T,P,Temp;
scanf("%d\n",&N);
for (P = 0 ; P < N ; P++)
{
int Table[256]={0};
Index=0;
Max=0;
gets(MyString);
while ( MyString[Index]!= '\0' )
{
Temp = tolower( MyString[Index] );
if ( 'a' <= Temp && 'z' >= Temp )
{
Table[ Temp ]++;
if ( Max < Table[Temp] )
{
Max = Table[Temp ];
}
}
Index++;
}
for (T ='a' ; T <= 'z' ; T++)
{
if (Max == Table[T] )
{
printf("%c",T);
}
}
printf("\n");
}
return 0;
}
囧 下一分鐘就找到BUG了
是因為Input Buffer overflow 引起無限loop
這題目"一行就是一個測試資料,這一行可能有空白,但是至少有一個字母,一行全部的字母加起來不超過200個"很容易誤導耶
也沒有說INPUT的字串上限有多少................................... 囧