大疆科技笔试总结
在8月6号我做了一下大疆科技测试工程师的笔试题,虽然我对测试工程师比较陌生,但是由于大疆科技难度比较高,所以我还是谨慎的选择了测试工程师
下面我来说一下笔试题大概内容
- 单选题20个
- 多选题10个
- 编程题1个
1.单选题:难度不大,但是涉及范围特别广,可能因为我选择的场次比较靠后,所以难度可能会比前面一场难度大一些,但是单选题还是很基础的,不过会涉及大疆公司关于无人机产品,或者关于图像方面的知识。
2.多选题:多选题难度也不是很高,主要会涉及到一些关于算法的知识,但是只要基础扎实,应该不会有问题,数据结构的查找排序和链表绝对是各大公司笔试常有题
3.编程题:这次的编程真的很复杂,只能说中国文字博大精深。我原本以为我有充足的时间可以写完编程,然而并没有,下面我来说一下这个编程题的内容
将阿拉伯数字转换为文字: 例如:999-->九百九十九 ; 10080-->一万零八十
难点:不只是单纯的转换数字成大写汉字,还要将它与百,万,零等表示大小的数字进行结合
笔试过程中我并没有写完,笔试之后我按照之前的思路解决了这个问题,下面是我的思路和代码
通过这张图,可以看出转化过程中我们需要找到一定的规律,除了个位,其它的每一位我们都需要标识它的单位
所以一开始我们就需要建立两个数组来存放数字和单位,
vector<string> letter;//存放0-9字符
vector<string> letters; //存放单位字符串
接下来找到规律后就简单了,可以按照规律将循环和判断的思路写出来就可以了
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>
#include <string>
using namespace std;
string convertNum(int num)
{
vector<string>letter;
letter.push_back("0");
letter.push_back("1");
letter.push_back("2");
letter.push_back("3");
letter.push_back("4");
letter.push_back("5");
letter.push_back("6");
letter.push_back("7");
letter.push_back("8");
letter.push_back("9");
vector<string>letters;
letters.push_back(" ");
letters.push_back("S");
letters.push_back("B");
letters.push_back("Q");
letters.push_back("W");
letters.push_back("S");
letters.push_back("B");
letters.push_back("Q");
letters.push_back("Y");
letters.push_back("S");
string str;
string des;
char tmm[12];
sprintf(tmm, "%d", num);//字符串格式化命令,将格式化数据写入到字符串中
str += tmm;
int leight = str.size();
bool Isbool = false; //用来查看i位字符是否是0,进行标识
for ( int i = 0; i < leight; i++)
{
int digit = str.at(i) - '0';//str.at(pos),返回对pos位置字符的引用
int unit_index = leight - i - 1;
if (i == 0 && digit == 1 && (unit_index == 1 || unit_index == 5 || unit_index == 9))
{
des += letters[unit_index];
}
else if ( digit == 0 )
{
Isbool = true;
if (unit_index == 4 ||unit_index == 8)
{
des += letters[unit_index];
}
}
else
{
if ( Isbool )
{
des.append(letter[0]);
}
des += letter[digit];
des += letters[unit_index];
Isbool = false;
}
}
return des;
}
int main()
{
int num;
cin >> num;
cout << convertNum(num) << endl;
system("pause");
return 0;
}