拼多多笔试_09.03

第一题(100%):可能大家想复杂了,这题纯贪心就可以做出来,为了获得字典序,肯定是将字符串中最前面的字符往前推进,能推进多少就推进多少,如果能够顺带着将后面的的字符推进那就更好了,于是我创建了一个visited数组来标明可不可行,当后续字符想要往前推进的时候两个情况,一个是k还有,一个是visited为true。
第二题(100%):这题纯模拟就好了,根据输入,判断啥时候出界,可以用map或者set标明是否之前到达过,如果到达过说明不可能跳出去。
第三题(100%):这题比较坑的一点就是他要的是最大字典序,我说我思路咋没有问题提交只有8%, 后面把顺序改了改就ac了,贴个代码,这是唯一拿去本地调试了的....
#include<iostream>
#include<vector>

using namespace std;


bool check(vector<int>& counta, vector<int>& countb, vector<int>& change){
    int bsize = countb.size();
    vector<int> copya(counta), copyc(change);
 //   cout << bsize << endl;
    for(int i = 0; i < bsize; i++){
        if(countb[i] != 0){
  //          cout << i << " " <<  countb[i] << " " << counta[i] << " " << copya[26] << endl;
            if(copya[i] + copya[26] >= countb[i]){
                if(copya[i] >= countb[i])
                    copya[i] -= countb[i];
                else{
                    int dis = countb[i] - copya[i];
                    copyc[i] += dis;
                    copya[26] -= dis;
                    copya[i] = 0;
                }
            }else
                return false;
        }

    }
    counta = copya;
    change = copyc;

    return true;
}



int main(){
    string s, t;
    cin >> s >> t;

    vector<int> counta(27, 0);
    vector<int> countb(26, 0);
    vector<int> chindex;
    int ssize = s.size(), tsize = t.size();

    if(ssize < tsize){
        cout << s << endl;
        return 0;
    }

    for(int i = 0; i < ssize; i++){
        if(s[i] >= 'a' && s[i] <= 'z')
            counta[s[i] - 'a']++;
        else{
            counta[26]++;
            chindex.push_back(i);
        }
    }

    for(int i = 0; i < tsize; i++)
        countb[t[i] - 'a']++;

    vector<int> change(26, 0);
    while(check(counta, countb, change)){

    }

    for(int i = 0; i <= 25; i++){
        while(change[i]){
            int index = chindex.back();
            chindex.pop_back();
            s[index] = i + 'a';
            change[i]--;
        }
    }

    while(!chindex.empty()){
        int index = chindex.back();
        chindex.pop_back();
        s[index] = 'z';
    }

    cout << s << endl;

    return 0;
}
第四题(0):时间不够用,只不过就是菜,也没有骗到分,大佬们可以在评论区说一下第四题思路,我感觉可能这题可能有公式或者需要进行分组 再dp。


#拼多多笔试##秋招##笔试#
全部评论
老哥能贴个第一题吗 感谢
1 回复 分享
发布于 2022-09-03 18:32 四川
想请问一下怎么报名pdd...
点赞 回复 分享
发布于 2022-09-03 18:50 安徽
第三题多余的#要用z填充嘛?
1 回复 分享
发布于 2022-09-03 18:08 上海
hi~同学,秋招遇“寒气”,牛客送温暖啦!23届秋招笔面经有奖征集中,参与就得牛客会员7天免费体验,最高赢300元京东卡!戳我去看>>>https://www.nowcoder.com/link/zhengjipinglun
点赞 回复 分享
发布于 2022-09-04 15:47 北京
nmd,一三题测试用例过了硬是想不出错在什么细节的地方,第一题0,第三题16无语了
点赞 回复 分享
发布于 2022-09-04 09:34 上海
是的 为了获得他所谓的字典序🤣
点赞 回复 分享
发布于 2022-09-03 18:10 湖北

相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
6
11
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
11036次浏览 94人参与
# 你的实习产出是真实的还是包装的? #
1956次浏览 42人参与
# 巨人网络春招 #
11365次浏览 223人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7640次浏览 43人参与
# 简历第一个项目做什么 #
31744次浏览 341人参与
# 重来一次,我还会选择这个专业吗 #
433544次浏览 3926人参与
# MiniMax求职进展汇总 #
24116次浏览 309人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187205次浏览 1122人参与
# 牛客AI文生图 #
21446次浏览 238人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152446次浏览 888人参与
# 研究所笔面经互助 #
118964次浏览 577人参与
# 简历中的项目经历要怎么写? #
310361次浏览 4219人参与
# AI时代,哪些岗位最容易被淘汰 #
63815次浏览 828人参与
# 面试紧张时你会有什么表现? #
30510次浏览 188人参与
# 你今年的平均薪资是多少? #
213134次浏览 1039人参与
# 你怎么看待AI面试 #
180131次浏览 1258人参与
# 高学历就一定能找到好工作吗? #
64331次浏览 620人参与
# 你最满意的offer薪资是哪家公司? #
76539次浏览 374人参与
# 我的求职精神状态 #
448131次浏览 3129人参与
# 正在春招的你,也参与了去年秋招吗? #
363512次浏览 2638人参与
# 腾讯音乐求职进展汇总 #
160674次浏览 1112人参与
# 校招笔试 #
471179次浏览 2964人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务