题目描述:
请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"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());
}
}
运行结果: