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;
}

posted on 2012-02-21 20:38  hrbust_09zhangyabin  阅读(242)  评论(0编辑  收藏  举报