【力扣C语言】每日一题

目录

【28题】

思路:

【171题】

思路:

【283题,移动零】

思路:


【28题】

思路:

先用strstr查看是否存在匹配项,再用strncmp比较是否和匹配项相同并输出下标。

int strStr(char* haystack, char* needle) {
    char *p = strstr(haystack,needle);
    if(p==NULL)
    {
        return -1;
    }
    for (int i = 0; i < strlen(haystack); i++)
    {
        if(strncmp(needle,&haystack[i],strlen(needle))==0)
        {
            return i;
        }
    }
    return -1;
}

【171题】

思路:

(1)根据ascll码表,遍历每一位减64,使A=1;B=2...

(2)如果len大于等于1,for循环求结果,第i位(这里指按自然数的第i位,例如ABC,A为第三位,C位第一位。)应该等于26的(i-1)次方乘以该位上的数字。最后相加求和输出结果。

代码:

int titleToNumber(char* columnTitle) {
    
    int len=strlen(columnTitle);
    for(int i = 0;i<len;i++)
    {
        columnTitle[i]-=64;
    }
    if(len>=1)
    {
        int sum = 0;
        int j=len-1; // j用来计算该位需要乘以多少个26.
        for(int i=0;i<len;i++)
        {
            sum+=columnTitle[i]*pow(26,j);
            j--;
        }
        return sum;
    }
    else
    {
        return -1;
    }
    return 0;
   
}

当然也可以将第一步与第二步结合

int titleToNumber(char* columnTitle) {
    
    int len=strlen(columnTitle);
    if(len>=1)
    {
        int sum = 0;
        int j=len-1;
        for(int i=0;i<len;i++)
        {
            sum+=(columnTitle[i]-64)*pow(26,j);
            j--;
        }
        return sum;
    }
    else
    {
        return -1;
    }
    return 0;
   
}

【283题,移动零】

思路:

(1)将不是0的数移到最前方,并计数

(2)将后面数赋值为0,输出结果

void moveZeroes(int* nums, int numsSize) {
    int right=0,left=0;
    int len=numsSize;
    while(numsSize--)
    {
        if(nums[left]==0)
        {
            left++;
        }
        else
        {
            nums[right]=nums[left];
            right++;
            left++;
        }
    }
    for(int i=right;i<len;i++)
    {
        nums[i]=0;
    }
    for(int i=0;i<len;i++)
    {
        printf("%d\t",nums[i]);
    }
}
相关推荐
好奇龙猫30 分钟前
【学习AI-相关路程-mnist手写数字分类-win-硬件:windows-自我学习AI-实验步骤-全连接神经网络(BPnetwork)-操作流程(3) 】
人工智能·算法
sp_fyf_20241 小时前
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-01
人工智能·深度学习·神经网络·算法·机器学习·语言模型·数据挖掘
ChoSeitaku1 小时前
链表交集相关算法题|AB链表公共元素生成链表C|AB链表交集存放于A|连续子序列|相交链表求交点位置(C)
数据结构·考研·链表
偷心编程1 小时前
双向链表专题
数据结构
香菜大丸1 小时前
链表的归并排序
数据结构·算法·链表
jrrz08281 小时前
LeetCode 热题100(七)【链表】(1)
数据结构·c++·算法·leetcode·链表
oliveira-time2 小时前
golang学习2
算法
@小博的博客2 小时前
C++初阶学习第十弹——深入讲解vector的迭代器失效
数据结构·c++·学习
南宫生3 小时前
贪心算法习题其四【力扣】【算法学习day.21】
学习·算法·leetcode·链表·贪心算法
懒惰才能让科技进步3 小时前
从零学习大模型(十二)-----基于梯度的重要性剪枝(Gradient-based Pruning)
人工智能·深度学习·学习·算法·chatgpt·transformer·剪枝