1. 程式人生 > >【劍指Offer】第一個只出現一次的字元

【劍指Offer】第一個只出現一次的字元

題目連結

題目描述

在一個字串(0<=字串長度<=10000,全部由字母組成)中找到第一個只出現一次的字元,並返回它的位置, 如果沒有則返回 -1(需要區分大小寫).

分析:簡單計數並記錄字元對應的位置

class Solution {
public:
    int FirstNotRepeatingChar(string str) {
        int cnt[256]= {0},index[256],len=str.length();
        for(int i=0; i<len; i++) {
            cnt[str[i]-'0']++;
            if(cnt[str[i]-'0']==1) {
                index[str[i]-'0']=i;
            }
        }
        for(int i=0; i<len; i++) {
            if(cnt[str[i]-'0']==1) {
                return index[str[i]-'0'];
            }
        }
        return -1;
    }
};