zoukankan      html  css  js  c++  java
  • 字符串中第一个只出现一次的字符

    题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。

    思路:ASCII码表总共只有255个字符,只需建立一个整型数组分别存储每一个字符出现的次数,再顺序遍历字符串,查找其对应的在字符串中出现的次数,首先只出现一次的字符就是我们需要的字符。

    基于以上分析,代码如下:

     1 char FirstOnceChar(const char *Str)
     2 {
     3     assert (Str != NULL);
     4 
     5     // ASCII总共只有255个字符
     6     int Count[255];
     7 
     8     memset (Count, 0, 255 * sizeof (int));
     9 
    10     const char *pStr = Str;
    11 
    12     while (*pStr != '\0')
    13     {
    14         ++Count[*pStr];
    15         ++pStr;
    16     }
    17 
    18     pStr = Str;
    19     while (*pStr != '\0')
    20     {
    21         if (1 == Count[*pStr])
    22         {
    23             return (*pStr);
    24         }
    25 
    26         ++pStr;
    27     }
    28 
    29     // 如果没有一个字符是只出现一次的,那么返回空字符
    30     return ('\0');
    31 }

      一些测试结果:

  • 相关阅读:
    UVA 12284 Digital Matrix
    lightoj 1052
    light oj 1236
    light oj 1151
    省选准备 MISTAKE 大全
    我的省选 Day -15
    「FJ2014集训」采药人的路径
    【NOI2012】迷失游乐园
    寒假这十天
    计算几何 大杂烩
  • 原文地址:https://www.cnblogs.com/ldjhust/p/3053376.html
Copyright © 2011-2022 走看看