首页 > 其他 > 详细

【leetcode】第一个只出现一次的字符

时间:2020-08-16 12:11:12      阅读:65      评论:0      收藏:0      [点我收藏+]
char firstUniqChar(char* s){
    int hash[26] = {0};
    
    int len = strlen(s);    // 这里先求出strlen下面直接用,不建议再for循环的条件中写strlen,效率低了很多
    for (int i = 0; i < len; ++i) {
        hash[s[i] - a]++;
    }
    
    for (i = 0; i < len; ++i) {
        if (hash[s[i] - a] == 1) {
            return s[i];
        }
    }    
    return  ;
}

 

char firstUniqChar(char* s){
    int count[26]={0};
    int arr[26]={0};
    int index = 0;
    for (int i=0; i<strlen(s); i++)
    {
        count[s[i]-97] += 1;
        if (index <= 25)
        {
            for (int j=0; j<= index; j++)
            {
                if (s[i] == arr[j])
                    break;
                if (j == index)
                {
                    arr[index++] = s[i];
                    break;
                }
                    
            }
        }
    }
    for (int k=0; k<index; k++)
    {
        for (int l=0; l<26; l++)
        {
            if (arr[k] - 97 == l)
            {
                if (count[l] == 1)
                    return arr[k];
                break;
            }
        }
    }
    return 0x20;
}

 

【leetcode】第一个只出现一次的字符

原文:https://www.cnblogs.com/ganxiang/p/13511820.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!