• 好未来2017秋招笔试真题二 --牛客网


    好未来2017秋招笔试真题二 --牛客网

    链接:https://www.nowcoder.com/questionTerminal/ee5de2e7c45a46a090c1ced2fdc62355
    来源:牛客网

    将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I

    输入描述:
    每个测试输入包含1个测试用例:  I like  beijing. 输入用例长度不超过100
    输出描述:
    依次输出倒置之后的字符串,以空格分割
    输入例子:
    I like  beijing.
    输出例子:
    beijing. like I
    #include <iostream>
    #include <string> 
    #include <algorithm>
    using namespace std;
     
    int main(){
        string st;
        getline(cin, st);
        int start = 0;
        reverse(st.begin(), st.end());
        for(int i=0; i<st.length(); ++i){
            if(st[i] == ' '){
                reverse( st.begin()+start, st.begin()+i );
                start = i+1;
            }else if( i==st.length()-1 ){
                reverse(st.begin()+start, st.end());
            }
        }
        cout << st << endl;
        return 0;
    }
    

      

    链接:https://www.nowcoder.com/questionTerminal/f0db4c36573d459cae44ac90b90c6212
    来源:牛客网

    输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”

    输入描述:
    每个测试输入包含2个字符串
    输出描述:
    输出删除后的字符串
    输入例子:
    They are students.
    aeiou
    输出例子:
    Thy r stdnts.
    #include <cstdio>
    #include <cstdlib>
    #include <cstring>
    #include <iostream>
    using namespace std;
    const int MAXN = 1024;
     
    int main(){
        int j;
        char ch1[MAXN], ch2[MAXN], ans[MAXN];
        cin.getline( ch1, MAXN);
        scanf("%s", ch2);
        int vis[128] = {0};
        for(int i=0; i<strlen(ch2); ++i){
            vis[ch2[i]] = 1;
        }
        j = 0;
        for(int i=0; i<strlen(ch1); ++i){
            if(vis[ ch1[i] ] == 0){
                ans[j++] = ch1[i];
            }
        }
        ans[j] = '';
        printf("%s
    ", ans );
        return 0;
    }
    

      

    链接:https://www.nowcoder.com/questionTerminal/11cc498832db489786f8a03c3b67d02c
    来源:牛客网

    输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来

    输入描述:
    每个测试输入包含2个整数,n和m
    输出描述:
    按每个组合的字典序排列输出,每行输出一种组合
    输入例子:
    5 5
    输出例子:
    1 4
    2 3
    5
    #include <cstdio>
    #include <cstdlib>
    #include <cstring>
    #include <iostream>
    using namespace std;
    const int MAXN = 1000;
     
    int n, m, num[MAXN];
     
    void dfs(int cur, int sum){
        if(sum == m){
            for(int i=0; i<cur; ++i){
                if(i == cur-1){
                    printf("%d
    ", num[i] );
                }else{
                    printf("%d ", num[i]);
                }
            }
            return;
        }
        for(int i=num[cur-1]+1; i<=n; ++i){
            if(sum + i > m){
                break;
            }
            num[cur] = i;
            dfs(cur+1, sum+i);
        }
    }
     
    int main(){
        scanf("%d %d", &n, &m);
        for(int i=1; i<=n && i<=m; ++i){
            num[0] = i;
            dfs(1, i);
        }
        return 0;
    }
    

      

  • 相关阅读:
    【Java每日一题】20170111
    【Java每日一题】20170110
    【Java每日一题】20170109
    【Java每日一题】20170106
    【Java每日一题】20170105
    【Java每日一题】20170104
    【Java每日一题】20170103
    【Java每日一题】20161230
    【Java每日一题】20161229
    【Java每日一题】20161228
  • 原文地址:https://www.cnblogs.com/zhang-yd/p/6714730.html
Copyright © 2020-2023  润新知