华为模拟练习2023.6.14答题记录和笔试总结(略)

文章介绍了三道编程题目,包括计算单词的平均长度(单词重量),改变特定字母的小写到大写的习惯,以及计算特定模式字符串的排列组合数。作者分享了做题思路,提到注意点和解题技巧,并提及华为实习笔试的条件和难度。
摘要由CSDN通过智能技术生成

1.单词的总长度除以单词数量:单词重量

#include<stdio.h>
#include<string.h>
int main(){
    char str[200];
    scanf("%[^\n]",str);
    int len=strlen(str);
    int num=0;
    for(int i=0;i<len;i++){
        if(str[i]==' ')num++;
    }
    int weight=len-num;
    float v=((float)weight)/(num+1);
    printf("%.2f",v);
}

2.小明的打字习惯

#include<stdio.h>
#include<string.h>
int main()
{
    char str[200];
    scanf("%[^\n]",str);
    int len=strlen(str);
    for(int i=0;i<len;i++){
        if(str[i]=='a'||str[i]=='e'||str[i]=='i'||str[i]=='o'||str[i]=='u')
            str[i]+='A'-'a';
        else if(str[i]>='A'&&str[i]<='Z'&&str[i]!='A'&&str[i]!='E'&&str[i]!='I'&&str[i]!='O'&&str[i]!='U'){
            str[i]-='A'-'a';
        }
    }
    printf("%s",str);
    return 0;
}

3.AABB的排列组合个数

#include<stdio.h>
#include<string.h>
#include<math.h>
void strsamechar(char*str,int len,int*s,int*n){
    for(int i=0;i<len;i++){
        s[i]++;
        for(int j=i+1;j<len;j++)
            if(str[i]==str[j]){
                s[i]++;
                n[j]=1;
            }
    }
}
int factorial(int n){
    int res=1;
    for(int i=1;i<=n;i++){
        res*=i;
    }
    return res;
}
int main(){
    char str[20];
    scanf("%s",str);
    int len=strlen(str);
    int s[20]={0};
    int n[20]={0};
    strsamechar(str,len,s,n);

    int v=factorial(len);

    int num=1;
    for(int i=0;i<len;i++){
        if(s[i]>1&&n[i]!=1)num*=factorial(s[i]);
    }
    printf("%d",v/num);
    return 0;
}

笔试:
第一题排序然后查找输出找标准作品
思考:
用库函数节省排序时间;这里只在机试的时候看了眼,原来是左闭右开的区间,指针注意一下;sort

在这里插入图片描述

然后读题是相同的也算第几个最大的,当时打的忘了,给加戏了;
然后是输出是前面“ %d”加括号好写;
第二题,第三题上来骗分,就过了,华为实习笔试给目标学校的条件还比较宽松,
过150就可以;
第二题的数组和路径找车站;第三题没咋看;朋友300多过了,第二题递归。等明天手搓一下试试再。
总的说来提升空间很大;
估计面试挂了要。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值