题解 | #矩阵乘法计算量估算#

矩阵乘法计算量估算

https://www.nowcoder.com/practice/15e41630514445719a942e004edc0a5b

#include<stdio.h>
#include<string.h>
int compute(int headx,int heady,int subx,int suby,int x[],int y[])
{
    int n;
    n=subx*heady*suby;
    return n; 
}

int main(void)
{
    int num;
    scanf("%d",&num);
    int x[16]={0};
    int y[16]={0};
    for(int i=0;i<num;i++)
    {
        scanf("%d",&x[i]);
        scanf("%d",&y[i]);
    }
    char str[100]={0};
    scanf("%s",&str);
    int x_stack[100]={0};
    int y_stack[100]={0};
    char symbolstack[100]={0};
    int dx_size=0;
    int dy_size=0;
    int s_size=0;
    int len=strlen(str);
    int sum=0;
    
    for(int i=0;i<len;i++)
    {
        if(str[i]=='(')
        {
            symbolstack[s_size++]=str[i];
        }
        if(str[i]>='A'&&str[i]<='Z')
        {
            int ii=str[i]-'A';
            x_stack[dx_size++]=x[ii];
            y_stack[dy_size++]=y[ii];
        }
        if(str[i]==')')
        {
            sum+=compute(x_stack[dx_size-1],y_stack[dy_size-1],x_stack[dx_size-2],y_stack[dy_size-2],x,y);
            int x1=x_stack[dx_size-2];
            int y1=y_stack[dy_size-1];
            dx_size--;//数据栈顶取出
            dx_size--;//数据栈倒数第二个取出
            dy_size--;
            dy_size--;
            x_stack[dx_size++]=x1;
            y_stack[dy_size++]=y1;
            s_size--;
        }
        
    }
    printf("%d",sum);
    return 0;
}

全部评论

相关推荐

一颗宏心:华为HR晚上过了十二点后还给我法消息。
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务