2017今日头条实习测试
2017-04-20 16:52
211 查看
题目一、
两数组找相同的元素-array
时间限制:C/C++语言 1000MS;其他语言 3000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB
题目描述:
给两个整数(int)数组,输出相同的元素。
输入
给定两个整型数组[a1, a2, ...., am],[b1, b2, ..., bn]
输入格式如下,第一行给定第一个数组的大小m,接下来的m行为其数组元素a1 -- am,每行一个元素;
第m+1行为第二个数组的大小n,接下来的n行为其数组元素b1 -- bn,也是每行一个元素。示例如下:
m
a1
a2
…
am
n
b1
b2
…
bn
?
输出
两个数组中相同的元素,以空格分隔在一行中显示,显示顺序为其在第二个数组中出现的顺序。
样例输入
5
11
15
9
12
3
4
11
3
9
7
样例输出
11 3 9
通过率90%,有时间再调调。。。
-----------------------------------------------------------------------------------
题目二、
DAU 统计
时间限制:C/C++语言 2000MS;其他语言 4000MS
内存限制:C/C++语言 32768KB;其他语言 557056KB
题目描述:
日活跃用户数 (DAU) 是衡量一个产品表现的重要指标。
需要编写程序,根据给定的某一天的 N 条访问记录,对当天的用户总数 M 进行统计。
每个用户可能访问多次。
为了方便,我们用数字 (uid) 唯一标识每个用户。
输入
每一行包含一个 uid,遇到 0 时认为输入结束。
输入共包含 N+1 行,可认为是无序的。
输出
一个数字:去重后 uid 的数量 M。
样例输入
12933
111111
59220
69433
59220
111111
0
样例输出
4
Hint
数据范围
0 < uid < 2^63
对于 30% 的数据,0 < N < 100,000, 0 < M < 100,000
对于 100% 的数据,0 < N < 1,000,000, 0 < M < 800,000
通过率100%,不过用set更简单,待测。。。
------------------------------------------------------------------------------------
题目三、(麻烦 的一道题)
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
char Num[10][5][3]={{{'*','*','*'},{'*',' ','*'},{'*',' ','*'},{'*',' ','*'},{'*','*','*'}},
{{' ','*',' '},{' ','*',' '},{' ','*',' '},{' ','*',' '},{' ','*',' '}},
{{'*','*','*'},{' ',' ','*'},{'*','*','*'},{'*',' ',' '},{'*','*','*'}},
{{'*','*','*'},{' ',' ','*'},{'*','*','*'},{' ',' ','*'},{'*','*','*'}},
{{'*',' ','*'},{'*',' ','*'},{'*','*','*'},{' ',' ','*'},{' ',' ','*'}},
{{'*','*','*'},{'*',' ',' '},{'*','*','*'},{' ',' ','*'},{'*','*','*'}},
{{'*','*','*'},{'*',' ',' '},{'*','*','*'},{'*',' ','*'},{'*','*','*'}},
{{'*','*','*'},{' ',' ','*'},{' ',' ','*'},{' ',' ','*'},{' ',' ','*'}},
{{'*','*','*'},{'*',' ','*'},{'*','*','*'},{'*',' ','*'},{'*','*','*'}},
{{'*','*','*'},{'*',' ','*'},{'*','*','*'},{' ',' ','*'},{'*','*','*'}}};
char Fh[6][5][3]= {{{' ',' ',' '},{' ','*',' '},{'*','*','*'},{' ','*',' '},{' ',' ',' '}},
{{' ',' ',' '},{' ',' ',' '},{'*','*','*'},{' ',' ',' '},{' ',' ',' '}},
{{' ',' ',' '},{'*',' ','*'},{' ','*',' '},{'*',' ','*'},{' ',' ',' '}},
{{' ',' ',' '},{' ',' ','*'},{' ','*',' '},{'*',' ',' '},{' ',' ',' '}},
{{' ',' ',' '},{'*','*','*'},{' ',' ',' '},{'*','*','*'},{' ',' ',' '}},
{{' ',' ',' '},{' ',' ',' '},{' ',' ',' '},{' ','*','*'},{' ','*','*'}}};
char result[5][70];
int i, j, k;
int a, b, c;
char d, e;
int fh;
cin >> a >> d >> b ;
//cout << a << d << b <<endl;
switch(d){
case '+':
{
fh = 0;
c = a + b;
break;
}
case '-':
{
fh = 1;
c = a - b;
break;
}
case '*':
{
fh = 2;
c = a * b;
break;
}
case '/':
{
fh = 3;
c = float(a / b);
break;
}
}
//cout << c << endl;
//cout << fh << endl;
for(i=0; i<5; ++i)
{
j=0;
int num;
for(num=0; num<3; ++num)//a
{
result[i][j]=Num[a][i][num];
j++;
}
result[i][j++]=' ';
result[i][j++]=' ';
for(num=0; num<3; ++num)//+
{
result[i][j]=Fh[fh][i][num];
j++;
}
result[i][j++]=' ';
result[i][j++]=' ';
for(num=0; num<3; ++num)//b
{
result[i][j]=Num[b][i][num];
j++;
}
result[i][j++]=' ';
result[i][j++]=' ';
for(num=0; num<3; ++num)//=
{
result[i][j]=Fh[4][i][num];
j++;
}
result[i][j++]=' ';
result[i][j++]=' ';
for(num=0; num<3; ++num)//c
{
result[i][j]=Num[c][i][num];
j++;
}
result[i][j]='\0';
}
for(i=0; i<5;++i)
{
printf("%s\n", result[i]);
}
/*
for(i=0; i<=9; ++i)
{
for(j=0; j<5; ++j)
{
for(k=0; k<3; ++k)
{
cout << Num[i][j][k] ;
}
cout << endl;
}
}
for(i=0; i<6; ++i)
{
for(j=0; j<5; ++j)
{
for(k=0; k<3; ++k)
{
//cout << *(*(*(p+i)+j)+k);
cout << Fh[i][j][k] ;
}
cout << endl;
}
}
*/
return 0;
}
只实现了 个位 与 个位的运算,待完善,最近实验室比较忙,没空刷题。。。
两数组找相同的元素-array
时间限制:C/C++语言 1000MS;其他语言 3000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB
题目描述:
给两个整数(int)数组,输出相同的元素。
输入
给定两个整型数组[a1, a2, ...., am],[b1, b2, ..., bn]
输入格式如下,第一行给定第一个数组的大小m,接下来的m行为其数组元素a1 -- am,每行一个元素;
第m+1行为第二个数组的大小n,接下来的n行为其数组元素b1 -- bn,也是每行一个元素。示例如下:
m
a1
a2
…
am
n
b1
b2
…
bn
?
输出
两个数组中相同的元素,以空格分隔在一行中显示,显示顺序为其在第二个数组中出现的顺序。
样例输入
5
11
15
9
12
3
4
11
3
9
7
样例输出
11 3 9
#include <iostream> #include <algorithm> #include <vector> int main() { int m, n; int i, j; cin >> m; //int *a = new int[m]; vector<int> a; int temp; for(i=0; i<m; ++i) { //cin >> a[i]; cin >> temp; a.push_back(temp); } cin >> n; //int *b = new int ; vector<int> b; for(i=0; i<n; ++i) { //cin >> b[i]; cin >> temp; b.push_back(temp); } for(j=0; j<n; ++j) { for(i=0; i<m; ++i) { if(b[j]==a[i]) { cout<<b[j]<<' '; break; } } } cout << endl; /* for(i=0; i<m; ++i) cout << a[i]; cout << endl; for(i=0; i<n; ++i) cout << b[i]; cout << endl; */ return 0; }
通过率90%,有时间再调调。。。
-----------------------------------------------------------------------------------
题目二、
DAU 统计
时间限制:C/C++语言 2000MS;其他语言 4000MS
内存限制:C/C++语言 32768KB;其他语言 557056KB
题目描述:
日活跃用户数 (DAU) 是衡量一个产品表现的重要指标。
需要编写程序,根据给定的某一天的 N 条访问记录,对当天的用户总数 M 进行统计。
每个用户可能访问多次。
为了方便,我们用数字 (uid) 唯一标识每个用户。
输入
每一行包含一个 uid,遇到 0 时认为输入结束。
输入共包含 N+1 行,可认为是无序的。
输出
一个数字:去重后 uid 的数量 M。
样例输入
12933
111111
59220
69433
59220
111111
0
样例输出
4
Hint
数据范围
0 < uid < 2^63
对于 30% 的数据,0 < N < 100,000, 0 < M < 100,000
对于 100% 的数据,0 < N < 1,000,000, 0 < M < 800,000
#include <iostream> #include <algorithm> #include <vector> using namespace std; int main() { vector<long> a; long temp; while(1) { cin >> temp; if(temp == 0) break; a.push_back(temp); } sort(a.begin(),a.end()); a.erase(unique(a.begin(), a.end()), a.end()); cout << a.size() << endl; return 0; }
通过率100%,不过用set更简单,待测。。。
------------------------------------------------------------------------------------
题目三、(麻烦 的一道题)
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
char Num[10][5][3]={{{'*','*','*'},{'*',' ','*'},{'*',' ','*'},{'*',' ','*'},{'*','*','*'}},
{{' ','*',' '},{' ','*',' '},{' ','*',' '},{' ','*',' '},{' ','*',' '}},
{{'*','*','*'},{' ',' ','*'},{'*','*','*'},{'*',' ',' '},{'*','*','*'}},
{{'*','*','*'},{' ',' ','*'},{'*','*','*'},{' ',' ','*'},{'*','*','*'}},
{{'*',' ','*'},{'*',' ','*'},{'*','*','*'},{' ',' ','*'},{' ',' ','*'}},
{{'*','*','*'},{'*',' ',' '},{'*','*','*'},{' ',' ','*'},{'*','*','*'}},
{{'*','*','*'},{'*',' ',' '},{'*','*','*'},{'*',' ','*'},{'*','*','*'}},
{{'*','*','*'},{' ',' ','*'},{' ',' ','*'},{' ',' ','*'},{' ',' ','*'}},
{{'*','*','*'},{'*',' ','*'},{'*','*','*'},{'*',' ','*'},{'*','*','*'}},
{{'*','*','*'},{'*',' ','*'},{'*','*','*'},{' ',' ','*'},{'*','*','*'}}};
char Fh[6][5][3]= {{{' ',' ',' '},{' ','*',' '},{'*','*','*'},{' ','*',' '},{' ',' ',' '}},
{{' ',' ',' '},{' ',' ',' '},{'*','*','*'},{' ',' ',' '},{' ',' ',' '}},
{{' ',' ',' '},{'*',' ','*'},{' ','*',' '},{'*',' ','*'},{' ',' ',' '}},
{{' ',' ',' '},{' ',' ','*'},{' ','*',' '},{'*',' ',' '},{' ',' ',' '}},
{{' ',' ',' '},{'*','*','*'},{' ',' ',' '},{'*','*','*'},{' ',' ',' '}},
{{' ',' ',' '},{' ',' ',' '},{' ',' ',' '},{' ','*','*'},{' ','*','*'}}};
char result[5][70];
int i, j, k;
int a, b, c;
char d, e;
int fh;
cin >> a >> d >> b ;
//cout << a << d << b <<endl;
switch(d){
case '+':
{
fh = 0;
c = a + b;
break;
}
case '-':
{
fh = 1;
c = a - b;
break;
}
case '*':
{
fh = 2;
c = a * b;
break;
}
case '/':
{
fh = 3;
c = float(a / b);
break;
}
}
//cout << c << endl;
//cout << fh << endl;
for(i=0; i<5; ++i)
{
j=0;
int num;
for(num=0; num<3; ++num)//a
{
result[i][j]=Num[a][i][num];
j++;
}
result[i][j++]=' ';
result[i][j++]=' ';
for(num=0; num<3; ++num)//+
{
result[i][j]=Fh[fh][i][num];
j++;
}
result[i][j++]=' ';
result[i][j++]=' ';
for(num=0; num<3; ++num)//b
{
result[i][j]=Num[b][i][num];
j++;
}
result[i][j++]=' ';
result[i][j++]=' ';
for(num=0; num<3; ++num)//=
{
result[i][j]=Fh[4][i][num];
j++;
}
result[i][j++]=' ';
result[i][j++]=' ';
for(num=0; num<3; ++num)//c
{
result[i][j]=Num[c][i][num];
j++;
}
result[i][j]='\0';
}
for(i=0; i<5;++i)
{
printf("%s\n", result[i]);
}
/*
for(i=0; i<=9; ++i)
{
for(j=0; j<5; ++j)
{
for(k=0; k<3; ++k)
{
cout << Num[i][j][k] ;
}
cout << endl;
}
}
for(i=0; i<6; ++i)
{
for(j=0; j<5; ++j)
{
for(k=0; k<3; ++k)
{
//cout << *(*(*(p+i)+j)+k);
cout << Fh[i][j][k] ;
}
cout << endl;
}
}
*/
return 0;
}
只实现了 个位 与 个位的运算,待完善,最近实验室比较忙,没空刷题。。。
相关文章推荐
- 2017今日头条测试开发
- 2017今日头条测试编程题
- 找实习:今日头条--软件测试---笔试题
- ACM--面试--回文解码--今日头条2017实习offer题目
- 《今日头条2017暑期实习》:找出函数的最宽尖峰
- [笔试练习]今日头条实习笔试
- 2017实习生今日头条前端面经
- 今日头条2017校招编程题
- 今日头条2017客户端工程师实习生笔试题(回文解码)
- 今日头条2017校招(出题数目)
- 今日头条2017秋季校招在线编程题解法参考
- 【今日头条2017内推笔试题】二维平面整数点集
- 头条校招(今日头条2017秋招真题)
- 今日头条C++后台开发实习面试总结
- 【北京】【今日头条】【实习/正式】放出一大波职位
- 算法面试题-今日头条2017客户端工程师实习生笔试题4:或与加
- 今日头条2017暑期实习生招聘笔试编程题之函数最宽尖峰
- 12.20今日头条实习面试总结-算法工程师
- 今日头条2017春招笔试题——所有查询句子中与给定段落单词匹配量最多的句子
- 【牛客网】今日头条2017客户端工程师实习生笔试题