1. 程式人生 > >劍指offer-第一個只出現一次的字符

劍指offer-第一個只出現一次的字符

題目 body HA 它的 log turn spa first 數組

題目描述

在一個字符串(1<=字符串長度<=10000,全部由字母組成)中找到第一個只出現一次的字符,並返回它的位置

解題思路

由於char類型一共有256種可能,所以開辟一個數組hash[256]用來記錄每個字符出現的次數,這樣遍歷兩次字符串即可得到結果。第一次更新hash數組中對應字符的次數,第二次返回第一個字符次數為1的字符位置即可。

代碼

 1 class Solution {
 2 public:
 3     int FirstNotRepeatingChar(string str) {
 4         int hash[256] = {0};
 5         for
(int i = 0; i < str.size(); i++) 6 hash[str[i]]++; 7 for(int i = 0; i < str.size(); i++) 8 if(hash[str[i]] == 1) 9 return i; 10 return -1; 11 } 12 };

劍指offer-第一個只出現一次的字符