hdu2140
本来想去刷hdu2141呢!结果,看到一个关于2040的代码就立刻被吸引了。
本身水题,可以用if else 来进行判断;也可以用 switch() 来判断。
但这个代码的亮点,是利用字符所代表的ascii码进行映射,思维很先进啊!别人都要进行九次判断,而他一下就找到了。很节省时间啊!我看了一下只有他是0ms过的!
这个思想可以在以后的题中发扬,杜绝TML!
代码:
#include <stdio.h>
#include<string.h>
char tab[300] ;
char str[10010] ;
int main ()
{ int i ;
char s1[] = "bqtmicael", s2[] = " ,!leacim" ;
memset(tab,0,sizeof(tab));
for (i = 0 ; i < 9 ; i++)
tab[s1[i]] = s2[i] ;
while (gets (str))
{
for (i = 0 ; str[i] ; i++)
{
if (tab[str[i]] == 0)
putchar (str[i]) ;
else
putchar (tab[str[i]]) ;
}
printf ("\n") ;
}
return 0;
}