zoukankan      html  css  js  c++  java
  • 给出一个字符串,找出其中只出现一次且位置最靠前的那个字符

     1 #include <iostream>
     2 #include <string.h>
     3 using namespace std;
     4 char findChar(const char *str)
     5 {
     6     int count[26] = {0};
     7     int index[26] = {0};
     8     unsigned int i;
     9     int pos;
    10     for(i = 0;i < strlen(str);i++)
    11     {
    12         count[str[i]-'a']++;//计数
    13         if(index[str[i]-'a'] == 0)
    14         {
    15             index[str[i]-'a']=i;//标记第一次出现的位置,即当第二次出现的时候,index[]的值已经更新了
    16         }
    17         //cout<<str[i]<<"--->"<<index[str[i]-'a']<<endl;
    18     }
    19     pos = strlen(str);
    20     for(i = 0;i < 26;i++)
    21     {
    22         if(count[i] == 1)
    23         {
    24             if(index[i] != -1 && index[i]< pos)
    25             {
    26                 pos = index[i];
    27             }
    28         }
    29     }
    30     if(pos < strlen(str))
    31         return str[pos];
    32 }
    33 int main()
    34 {
    35     char str[] = "iamsuperdemonandastudent";
    36     cout<<findChar(str)<<endl;
    37 }
    View Code
  • 相关阅读:
    C# macro function via #define __FILE__ __LINE__ ___FUNCTION__ __DATE__ __TIME__
    3
    2月23号
    3月26
    impala故障
    2月3号日更
    HDFS某个节点的磁盘满了
    3月2
    mq集群
    3月3
  • 原文地址:https://www.cnblogs.com/sxmcACM/p/4495476.html
Copyright © 2011-2022 走看看