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

     

    一、算法描述

        给定一个字符串,找出字符串中第一个只在整个字符串中出现一次的字符。

    二、算法思路

        此题比较简单,常规方法如直接遍历整个字符串,从第一个字符开始,逐一和后续字符比较,看是否在字符串出现,第二种方法是根据字符ascii特性,借助辅助数组,类似于hash数组,以字符的ascii为下标,以字符出现的次数为hash元素值,先统计出各个字符出现的次数,然后再遍历整个字符串,判断其在hash中出现的次数是否为1,为1则表示第一次出现,直接输出即可

    三、算法代码

        此处只给出第二种方法的代码

    #include <iostream>
    #include <cstring>
    using namespace std;
    //hash method, two loop, o(n)
    void find_char(char *s, int n)
    {
        int *pc = new int[256];
        memset(pc,0,sizeof(int)*256);
        int i=0;
        for(i=0;i<n;++i)
            pc[s[i]]++;
        for(i=0;i<n;++i)
        {
            if(pc[s[i]]==1)
            {
                cout<<s[i]<<endl;
                break;
            }    
        }    
    }
    
    int main()
    {
        char src[256]="abacbcdeff";
        
        find_char(src,strlen(src));
        return 0;
    }
  • 相关阅读:
    store的应用
    创建简单的SimpleStore
    设置间隔一周的算法
    C#里缓存的使用
    javaFileWrite,FileReader
    javaArrayList
    java函数方法
    java学生管理系统(简易版)
    Tensorflow框架
    java日期
  • 原文地址:https://www.cnblogs.com/ballwql/p/4946258.html
Copyright © 2011-2022 走看看