首页 > 其他 > 详细

JZ54 字符流中第一个不重复的字符

时间:2021-09-01 12:39:57      阅读:24      评论:0      收藏:0      [点我收藏+]

原题链接

描述

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

后台会用以下方式调用Insert 和 FirstAppearingOnce 函数。

string caseout = "";

1.读入测试用例字符串casein

2.如果对应语言有Init()函数的话,执行Init() 函数

3.循环遍历字符串里的每一个字符ch {

Insert(ch);

caseout += FirstAppearingOnce()

}

\2. 输出caseout,进行比较。

返回值描述:

如果当前字符流没有存在出现一次的字符,返回#字符。


示例

输入:"google"
返回值:"ggg#ll"

思路

JZ34很像的。


解答

import java.util.Arrays;
import java.util.HashMap;

public class Solution {
    int[] a = new int[128];
    String tmp = "";

    //Insert one char from stringstream
    public void Insert(char ch) {
        a[ch]++;
        tmp += ch;
    }

    //return the first appearence once char in current stringstream
    public char FirstAppearingOnce() {
        for (int i = 0; i < tmp.length(); i++) {
            if (a[tmp.charAt(i)] == 1)
                return tmp.charAt(i);
        }
        return ‘#‘;
    }
}

JZ54 字符流中第一个不重复的字符

原文:https://www.cnblogs.com/klaus08/p/15208439.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!