好未来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; }