華為2017実習生募集筆記試験問題
3004 ワード
ここ数年、HUAWEIの利益は日に日に勝っているので、従業員の価格も水増しして船が高い.今回のオンラインプログラミング時間は2017年3月17日午後7時、計3つの小さなプログラミング問題です.
タイトルは簡単すぎる~~、コンソールに入力された文字列を小文字で大文字に変換し、アルファベット以外の文字を無視することです.
タイトル2:集福カード、入力は01011のような文字列で、愛国、敬業、富強、等福カードがそろっているかどうかを代表しています.テーマの要求は10人未満のグループがあって、グループ内の人が全部でどれだけの五福を集めたかを求めます.
これは簡単ですが、累積統計ではないでしょうか~~
反省して、この問題をするのは実は多くの時間を浪費して、中から自分が文字列に対する操作と熟練していないことを見ることができて、今後の面接の中で文字と文字列の入出力と操作を重視する必要があります.
while((ch=getchar()!=EOF)の役割は、EOF以外のすべての文字の内容を読み取ることです.
テーマ3:設計後の順序表現の簡単なコンソール入力計算機、入力数字は16ビットで、幸いなことに16ビット単位数で、すべて複数の数字の変換を考慮しなくてもいいです.Aは10を表し、Bは11を表し、Fは15を表す.演算子は+、-、*の3種類のみです.そこでスタックを導入し,数値がint圧入に変換され,演算子が2つポップアップされて演算される.考官は复雑なテーマを简単に设计したので、私はこの后序、前序、中序などの电卓がとても人気があると思って、考点総合、みんなはすべて好きです~~
反省して、cin>>stringは1行のスペースに対応できないので、getline(cin,string)で完全な1行をstringに得る必要があります.
まとめ:マルチパラメータプログラミング、マルチ実践、文字列重視.
タイトルは簡単すぎる~~、コンソールに入力された文字列を小文字で大文字に変換し、アルファベット以外の文字を無視することです.
タイトル2:集福カード、入力は01011のような文字列で、愛国、敬業、富強、等福カードがそろっているかどうかを代表しています.テーマの要求は10人未満のグループがあって、グループ内の人が全部でどれだけの五福を集めたかを求めます.
これは簡単ですが、累積統計ではないでしょうか~~
// HUAWEI_job.cpp : 。
//
#include "stdafx.h"
#include
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
char ch;
int count[5] = {0};
int count_times = 0;
while((ch = getchar()) != EOF)
{
if(count_times < 5)
{
if(ch == '1')count[count_times++]++;
else count_times++;
}
else count_times = 0;
}
int min = count[0];
for(int i=0;i<5;++i)
{
if(count[i] < min)min = count[i];
//cout<
反省して、この問題をするのは実は多くの時間を浪費して、中から自分が文字列に対する操作と熟練していないことを見ることができて、今後の面接の中で文字と文字列の入出力と操作を重視する必要があります.
while((ch=getchar()!=EOF)の役割は、EOF以外のすべての文字の内容を読み取ることです.
テーマ3:設計後の順序表現の簡単なコンソール入力計算機、入力数字は16ビットで、幸いなことに16ビット単位数で、すべて複数の数字の変換を考慮しなくてもいいです.Aは10を表し、Bは11を表し、Fは15を表す.演算子は+、-、*の3種類のみです.そこでスタックを導入し,数値がint圧入に変換され,演算子が2つポップアップされて演算される.考官は复雑なテーマを简単に设计したので、私はこの后序、前序、中序などの电卓がとても人気があると思って、考点総合、みんなはすべて好きです~~
// HuaWei_postExPress.cpp : 。
//
#include
#include
#include
using namespace std;
int main()
{
string exp;
getline(cin,exp);
stack opnd;
int i=0;
char ch;
while(i < exp.length())
{
ch = exp[i++];
if(ch == '+')
{
int num2 = opnd.top();
opnd.pop();
int num1 = opnd.top();
opnd.pop();
//compute result;
int ret = num1 + num2;
opnd.push(ret);
}
else if(ch == '-')
{
int num2 = opnd.top();
opnd.pop();
int num1 = opnd.top();
opnd.pop();
//compute result;
int ret = num1 - num2;
opnd.push(ret);
}
else if(ch == '*')
{
int num2 = opnd.top();
opnd.pop();
int num1 = opnd.top();
opnd.pop();
//compute result;
int ret = num1 * num2;
opnd.push(ret);
}
else if(ch >= '0' && ch <= '9')
{
//compute result;
int ret = ch - '0';
opnd.push(ret);
}
else if(ch == 'A')
{
//compute result;
int ret = 10;
opnd.push(ret);
}
else if(ch == 'B')
{
//compute result;
int ret = 11;
opnd.push(ret);
}
else if(ch == 'C')
{
//compute result;
int ret = 12;
opnd.push(ret);
}
else if(ch == 'D')
{
//compute result;
int ret = 13;
opnd.push(ret);
}
else if(ch == 'E')
{
//compute result;
int ret = 14;
opnd.push(ret);
}
else if(ch == 'F')
{
//compute result;
int ret = 15;
opnd.push(ret);
}
}
cout<
反省して、cin>>stringは1行のスペースに対応できないので、getline(cin,string)で完全な1行をstringに得る必要があります.
まとめ:マルチパラメータプログラミング、マルチ実践、文字列重視.