5544992 发表于 2017-7-10 19:23:24

华为2016校招(字符集合)

  题目描述
   输入一个字符串,求出该字符串包含的字符集合
   输入描述:

  每组数据输入一个字符串,字符串最大长度为100,且只包含字母,不可能为空串,区分大小写。

  输出描述:

  每组数据一行,按字符串原有的字符顺序,输出字符集合,即重复出现并靠后的字母不输出。

   输入例子:

  abcqweracb

  输出例子:

  abcqwer


  代码实现:



#include <stdio.h>
int main(){
   /** A-Z=65-90a-z=97-122
      ** hash_map数组的作用是,使用下标作为asc码的索引,例如hash_map=0/1;表示大写字符'A'是否已经出现过,出现了置1,没出现为0
      **/
   int hash_map;//创建一个映射数组,hash_map下标为0时表示“A”,下标为57时,表示“z”,对于asc码值为91-96的字符这里也包含了,但是不使用这几个值;
   int i;
   for(i=0;i<58;i++){
         hash_map=0;
   }

   char in_str;
   gets(in_str);
   char *p2char=in_str;
   for(i=0;i<100;i++)
   {
         int asc_char = (int)(*p2char);
         if(hash_map ==0)
         {
             hash_map =1;
             printf("%c",*p2char);
         }
         p2char++;

         if(*p2char =='\0')
             break;
   }
   printf("\n");
   return 0;
}
  欢迎看到的朋友进行指正;
页: [1]
查看完整版本: 华为2016校招(字符集合)