【日志】力扣58.最后一个单词的长度//14.最长公共前缀//28. 找出字符串中第一个匹配项的下标

时间:2024-11-13 08:24:25

2024.11.6

【力扣刷题】

58. 最后一个单词的长度 - 力扣(LeetCode)https://leetcode.cn/problems/length-of-last-word/?envType=study-plan-v2&envId=top-interview-150

int lengthOfLastWord(char* s) {
    int count = 0;
    for (int i = strlen(s) - 1; i >= 0; i--) {    // 逆序查找,从后往前遍历
        if (s[i] != ' ') {
            count++;
        } else {
            if (count == 0)    // 当末尾为空格时,count为0,不返回结果,跳过该次循环
                continue;
            else
                return count;
        }
    }
    return count;
}
14. 最长公共前缀 - 力扣(LeetCode)https://leetcode.cn/problems/longest-common-prefix/?envType=study-plan-v2&envId=top-interview-150
char* longestCommonPrefix(char** strs, int strsSize) {    // 两个*说明是传进一个二维数组
    char* str = strs[0];        // 设置一个指针数组,并接收该二维数组的首行元素
    for (int i = 0; i < strlen(strs[0]); i++) {    // 使i不超过首行元素的大小
        for (int j = 1; j < strsSize; j++) {       // 遍历二维数组的行数
            // 判断同一列,每行元素是否相同
            if (strs[j][i] != str[i])
            {
                str[i] = '\0';
                return str;
            }
        }
    }
    return str;
}
28. 找出字符串中第一个匹配项的下标 - 力扣(LeetCode)https://leetcode.cn/problems/find-the-index-of-the-first-occurrence-in-a-string/description/?envType=study-plan-v2&envId=top-interview-150
int strStr(char* haystack, char* needle) {
    int hSize = strlen(haystack);
    int nSize = strlen(needle);

    for (int i = 0; i + nSize <= hSize; i++) {
        bool flag = false;        //控制是否符合输出条件
        // 控制从i列开始,是否有连续的元素相等
        for (int j = 0; j < nSize; j++) {
            if (haystack[i + j] != needle[j]) {    
                flag = false;
                break;
            }
            else
            {
                flag = true;
            }
        }
        if(flag)
        {
            return i;
        }
    }
    return -1;
}

——每天努力十五分钟,一年就努力了5475分钟,也就是91.25小时。(记得乘上0.7,这是扣去双休和法定的节假日的时间的)