第 298 场周赛

第一题:2309. 兼具大小写的最好英文字母

原题链接

思路:找到字符串s里的所有大写字母组成新的字符串,然后再用新的字符串x去对比字符串s,如果s中有相对应的小写字母,将所有满足条件的大写字母赋给又一个新的字符串y,然后在这个字符串y中比较每个大写字母的大小,最后输出最大的那个即为题目所求

class Solution {
public:
    string greatestLetter(string s) {
        string x,y;
        for(int i=0;i<s.size();i++){
            if(s[i]>='A'&&s[i]<='Z') x+=s[i];
        }//将字符串s中所有大写字母存在字符串x中
        for(int i=0;i<x.size();i++){
            for(int j=0;j<s.size();j++){
                if(x[i]+32==s[j]+0) y+=x[i];
            }
        }//将字符串x和字符串s中的小写字符对比 如果有一样的就把大写字母存入字符串y
        cout<<x<<endl;
        cout<<y<<endl;
        string t="";
        for(int i=0;i<y.size();i++){
            if(t=="") t+=y[0];
            if(t[0]<y[i]) t[0]=y[i];
        }//比较字符串y中大的字母存入t
        return t;
    }
};
//PS:字符串的替换必须基于字符串的长度。要想在空字符中存储值,直接添加字符即可

第二题:2310. 个位数字为 K 的整数之和

原题链接

思路:从题目中很容易得出当num==0时直接返回0,而且当k为偶数,而num为奇数数,必定不存在符合题意的多重数集,直接返回-1,如果num<k必定不满足条件,直接返回-1;枚举i从1到num,如果满足(num-i*k)%10==0且在(num-i*k)>=0的条件,则i即为题目所求,直接返回i,如果枚举结束还没有满足条件的i即返回-1

class Solution {
public:
    int minimumNumbers(int num, int k) {
        if(num==0) return 0;//限定条件
        if(num%2!=0&&k%2==0) return -1;//限定条件
        if(num<k) return -1;//限定条件
        for(int i=1;i<=num;i++){
            if((num-i*k)%10==0&&(num-i*k)>=0) return i;//判断条件
        }
        return -1;//不满足则返回-1
    }
};

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值