問題描述:java
在一個字符串中找到第一個只出現一次的字符。例如輸入asdertrtdsaf,輸出e。spa
分析:code
最簡單的方法是直接遍歷,時間複雜度爲O(n^2)。字符串
進一步思考:string
字符串中的字符,只有256種可能性,使用字符的爲下標,掃描一遍,存儲各個字符在字符串中的出現。第二次掃描字符串,查看每一個字符在字符串中的出現次數,若是爲1,輸出便可。io
代碼實現:class
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")); } }