B站笔试题

挺简单的题
1. 按反转单词的顺序 ab cd -> cd ab
#include <iostream>
#include <map>
#include <string>
#include <vector>
#include <sstream>
using namespace std;

int main() {
    string s,ans;
    getline(cin,s);
    stringstream ss;
    ss<<s;

    s.clear();
    while(ss>>s) {

        if(!ans.empty())  s+= " ";
        ans = s+ans;
    }

    cout<<ans;
    return 0;
}


2, 输出数组组合出的最小数  123 12-> 12123
#include <iostream>
#include <map>
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

#define MAX_N = 10010;

bool cmp(string &a, string &b) {
    return a+b<b+a;
}

int main() {
    vector<string> vs;
    vector<int> va;
    string s,ans;
    int d=0;
    scanf("%d",&d);
    va.push_back(d);
    while(scanf(",%d",&d)) {
        va.push_back(d);
    }
    vs.resize(va.size());
    for(int i=0;i<va.size();i++) {
        vs[i] = to_string(va[i]);
    }
    sort(vs.begin(),vs.end(),cmp);
    for(auto ts: vs) {
        ans+=ts;
    }
    while(ans[0] == '0') ans.erase(ans.begin());
    cout<<ans;
    return 0;;
}

3. 01背包原题
#include <iostream>
#include <map>
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

#define MAX_N = 10010;


int main() {
    int N,M;
    cin>>N>>M;
    vector<int> c(N),v(N);
    for(int i=0;i<N;i++) {
        cin>>c[i];
    }
    for(int i=0;i<N;i++) {
        cin>>v[i];
    }

    vector<vector<int>> dp(N+1,vector<int>(M,0));

    for(int i=1;i<=N;i++) {
        for(int j=0; j <= M; j++) {
            dp[i][j] = dp[i-1][j];
            if(j>=c[i-1]) dp[i][j] = max(dp[i][j],dp[i-1][j-c[i-1]] + v[i-1]);
        }
    }
    cout<<dp[N][M];

    return 0;;
}


#笔试题目#
全部评论
都是原题。。
点赞 回复 分享
发布于 2019-08-20 20:17
看到这题目后悔把笔试推到下个月了😂
点赞 回复 分享
发布于 2019-08-20 20:37
不想招人嘛?
点赞 回复 分享
发布于 2019-08-20 20:47
这也太简单了,醉了。
点赞 回复 分享
发布于 2019-08-20 20:49
第一次AK给了B站😶😶
点赞 回复 分享
发布于 2019-08-20 20:51
简单又嫌弃太简单,难了又嫌弃太难了,是不是******
点赞 回复 分享
发布于 2019-08-20 21:02

相关推荐

喜欢走神的孤勇者练习时长两年半:池是池,发是发,我曾池,我现黑
点赞 评论 收藏
分享
评论
点赞
8
分享
牛客网
牛客企业服务