zoukankan      html  css  js  c++  java
  • 面试题35:第一个只出现一次的字符

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

    解题思路:哈希。num[ch]记录字符ch出现的次数。

    #include<iostream>
    
    using namespace std;
    
    int main()
    {
        int num['z'+1];
        string s;   
    
        cin>>s;    
        memset(num,0,sizeof(num));
        for(int i=0;s[i]!='';i++)
            num[s[i]]++;
        
        for(int i=0;s[i]!='';i++)
        {
            if(num[s[i]]==1)
            {
                cout<<s[i]<<endl;
                break;           
            }        
        }    
        
        system("pause");
        return 0;
    }
    View Code

    小变形:定义一个函数,输入两个字符串,从第一个字符串中删除在第二个字符串出现过的所有字符。

    解题思路:第一反应是将2个字符串排序(需要记录原来的位置),然后逐个删除。时间复杂度为O(nlogn)

    哈希:思路同上,int apr[ch]用来记录第二个字符串中字符ch出现次数。时间复杂度O(n)

  • 相关阅读:
    Day-5 python
    Day-2 python
    OCR技术浅探
    yael图像检索库
    编程语言
    BOW模型和SIFT特征
    汉明嵌入
    Lua1.1 Lua 的参考手册 (三)
    Lua1.1 Lua 的参考手册 (二)
    Lua1.1 Lua 的参考手册 (一)
  • 原文地址:https://www.cnblogs.com/icfnight/p/3294589.html
Copyright © 2011-2022 走看看