7 字符串中的第一个唯一字符

问题一、c语言如何计算字符串的长度?答:可以用strlen()函数计算字符串的长度,对应的头文件是#include<string.h>

问题二、if/else if之间的区别?答:

int firstUniqChar(char * s){
    int len = strlen(s); //计算字符串的长度
    int i = 0;
    if(len == 0)      //一开始对数组的情况进行非零判断
        return -1;
    
    int table[26] = {0};  //设置一个字母表
    for(i = 0; i < len ; i++)
        table[s[i] - 'a']++;   //在字母表里面计算出现字母的次数
    
    for(i = 0; i < len; i++)
    {
        if(table[s[i] -'a'] == 1)
            return i;
    }
    
    return -1;
}

备注:一开始的想法是对于这个字符串的每一个元素和之后的元素进行比较,如果出现相同的话就退出比较, 如果比完了都没有相同的就输出这个下标。本来觉得这个想法是可行的,但是最后如果都出现重复了输出-1不知道该怎么写了。看了leetcode的一个留言觉得这样用c写出来的真的很好,用字母表的方法记录字母出现的次数,然后第一个1的话就是第一次出现没有重复的,这个想法真的很不错。网上还有一些用散列表来写的,不太会用,之后可以试着写来看。

原文地址:https://www.cnblogs.com/181118ljh123/p/11930248.html