在一個字串中找到第一個只出現一次的字元(java實現)
阿新 • • 發佈:2019-01-23
題目:在一個字串中找到第一個只出現一次的字元。如輸入abaccdeff,則輸出b。
分析:這道題是2006 年google 的一道筆試題。
時間換空間,類似前面時間CSDN討論的一道華為的面試題:在O(n)時間內,得出一個字串每一個字元出現的次數類似;
用到這道題,可以不只是統計只出現一次的;還可以統計多次出現的
public class s17 { public static char firstOne(String s) { char result = '0'; char temp; int[] num = new int[52]; for (int i = 0; i < s.length(); i ++) { temp = s.charAt(i); if ( temp >= 'a' && temp <= 'z' ) { num[temp - 'a']++; } else if (temp >= 'A' && temp <= 'Z') { num[temp - 'A' + 26] ++; } } for (int i = 0; i < num.length; i ++) { if (num[i] == 1) { if (i >= 0 && i <=26) { result = (char)(i + 'a'); } else result = (char)(i - 26 + 'A'); break; } } return result; } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub // String s = "xabb"; String s = "abaccdeff"; // char c = firstOne(s); System.out.println(c); } }