IT公司100題-17-第一個只出現一次的字符

問題描述: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"));
   }
}
相關文章
相關標籤/搜索