zoukankan      html  css  js  c++  java
  • 字符流中第一个不重复字符

    题目描述

    请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。

    输出描述:

    如果当前字符流没有存在出现一次的字符,返回#字符。
    解题:简单hash应用

    c++代码如下:
    class Solution
    {
    public:
      //Insert one char from stringstream
        string s;
        int hash[256]={0};
        void Insert(char ch)
        {
           s+=ch;
           hash[ch]++;//在数组中自动转化为其对应的ascll码 
        }
      //return the first appearence once char in current stringstream
        char FirstAppearingOnce()
        {
        for(int i=0;i<s.size();i++){
            if(hash[s[i]]==1){
                return s[i];
            }
        }return '#';
        }
    
    };

    java代码如下:

    public class Solution {
        //Insert one char from stringstream
            String s="";//java代码中这个必须赋为空
        int hash[]=new int [256];
        public void Insert(char ch)
        {
            s+=ch;
           hash[ch]++;//在数组中自动转化为其对应的ascll码        
        }
      //return the first appearence once char in current stringstream
        public char FirstAppearingOnce()
        {
            for(int i=0;i<s.length();i++){
            if(hash[s.charAt(i)]==1){
                return s.charAt(i);
            }
        }return '#';
        }
        };
    不一样的烟火
  • 相关阅读:
    frog-jump
    nth-digit
    binary-watch
    elimination-game
    evaluate-division
    random-pick-index
    integer-replacement
    rotate-function
    longest-substring-with-at-least-k-repeating-characters
    decode-string
  • 原文地址:https://www.cnblogs.com/cstdio1/p/11245291.html
Copyright © 2011-2022 走看看