《剑指offer》 字符串第九题:字符流中第一个不重复的字符

2024-01-03 09:23:51

题目描述:

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

输出描述:
如果当前字符流不存在只出现一次的字符,返回“#”字符。

此题类似与我博客中的这篇:https://blog.csdn.net/y6533/article/details/134866811?spm=1001.2014.3001.5501

?代码实现:

package 字符串;
public class String9 {

        //因为java中最多有256个字符,所以定义长度为256
        String s="";
        int[] count=new int[256]; //256个字符

        public void Insert(char ch)
        {
            s+=ch;
            count[ch]+=1;
        }

        public char find()
        {
            for(int i=0;i<s.length();i++){
                char c=s.charAt(i);
                if(count[c]==1)
                    return c;
            }
            return '#';
        }


    public static void main(String[] args) {
                String9 s = new String9();

                System.out.println(s.find()); // '#'

                s.Insert('a');
                s.Insert('a');
                s.Insert('b');
                s.Insert('c');
                s.Insert('c');
                System.out.println(s.find());

                s.Insert('3');
                s.Insert('4');
                s.Insert('b');
                s.Insert('c');
                s.Insert('c');
                System.out.println(s.find());


            }
        }

运行结果:

文章来源:https://blog.csdn.net/y6533/article/details/135352937
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。