华为机试题


总体来说,最近一年的题,难易程度简单偏中等。

题总共分为五大类,分别是字符,排序,查找,算法题,其中二叉树单独拿出来考的

一.字符串

经常考的题有:(字符串比较,字符串拼接,字符串排序,是否为公共子串,字符串翻转,字符串重排;)

字符串类的题就直接用map函数就行,剩下的百分之2.5的题用for循环输出结果就可以;

难易程度:百分之80属于简单题的范畴,剩下的属于运气题——————————。

上面是几类高频的考试内容,以下是考试常用的几个函数 **

1.getline 函数,*此函数可读取整行,包括前导和嵌入的空格,并将其存储在字符串对象中。*

*当 cin 读取数据时,一旦它接触到第一个非空格字符即开始阅读,当它读取到下一个空白字符时,它将停止读取。*

getline(cin, inputLine);   举例: getline(cin, name);

2.sort函数,包含在头文件为#include的c++标准库中,调用标准库里的排序方法可以实现对数据的排序。

void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp); 

举例:

#include
#include
using namespace std;
bool cmp(int a,int b);
main(){
  //sort函数第三个参数自己定义,实现从大到小
  int a[]={45,12,34,77,90,11,2,4,5,55};
  sort(a,a+10,cmp);
  for(int i=0;i<10;i++)
    cout<b;
}

3.substr函数,返回一个string,包含s中从pos开始的n个字符的拷贝(pos的默认值是0,n的默认值是s.size() - pos,即不加参数会默认拷贝整个s)

举例:

#include
#include
using` `namespace` `std;
int` `main()
{
  string s(``"12345asdf"``);
  string a = s.substr(0,5);   ``//获得字符串s中从第0位开始的长度为5的字符串
  cout << a << endl;
}