您的位置:首页 > 其它

IT公司100题-17-第一个只出现一次的字符

2015-12-19 21:45 309 查看
问题描述:

在一个字符串中找到第一个只出现一次的字符。例如输入asdertrtdsaf,输出e。

分析:

最简单的方法是直接遍历,时间复杂度为O(n^2)。

进一步思考:

字符串中的字符,只有256种可能性,使用字符的为下标,扫描一遍,存储各个字符在字符串中的出现。第二次扫描字符串,查看每个字符在字符串中的出现次数,如果为1,输出即可。

代码实现:
package oschina.IT100;

/**
* @project: oschina
* @filename: iT17.java
* @version: 0.10
* @author: JM Han
* @date: 12:54 2015/12/19
* @comment: find the 1st char that only exist once in string
* @result:
*/

public class iT17 {
public static Character findChar(String s){
int[] int_set = new int[256];
char[] char_set = s.toCharArray();
for(char c: char_set){
int_set[c]++;
}
for(char c: char_set){
if(int_set[c] == 1)
return c;
}
return '\0';
}
public static void main(String[] args) {
System.out.println("The 1st char is: " + findChar("asdertrtdsaf"));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: