华为机试

动态规划

HJ24合唱队

HJ49多线程

HJ88扑克牌大小

扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A,2各4张,小王1张,大王1张。牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写JOKER表示大王):) 
3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER 
输入两手牌,两手牌之间用“-”连接,每手牌的每张牌以空格分隔,“-”两边没有空格,如:4 4 4 4-joker JOKER
请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERROR

HJ90合法IP

递归

HJ61放苹果

HJ93 201301java

HJ108 求最小公倍数

 

 

 

 

开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。 
处理:
1.记录最多8条错误记录,对相同的错误记录(即文件名称和行号完全匹配)只记录一条,错误计数增加;(文件所在的目录不同,文件名和行号相同也要合并)
2.超过16个字符的文件名称,只记录文件的最后有效16个字符;(如果文件名不同,而只是文件名的后16个字符和行号相同,也不要合并)
3.输入的文件可能带路径,记录文件名称不能带路径

 

 

5段错误

  1. 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据,希望大家能正确处理)

7

有一个数组a[N]顺序存放0~N-1,要求每隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以8个数(N=7)为例:{0,1,2,3,4,5,6,7},0->1->2(删除)->3->4->5(删除)->6->7->0(删除),如此循环直到最后一个数被删除。

明明的随机数

https://blog.csdn.net/qianqin_2014/article/details/51278447

 

改后通过了,需要再写一遍。

请解析IP地址和对应的掩码,进行分类识别。要求按照A/B/C/D/E类地址归类,不合法的地址和掩码单独归类。

https://blog.csdn.net/thecentry/article/details/82314032

 

Huawei2_A_Niu19

简单错误记录

开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。

A_Niu26素数伴侣_没有完全理解

字符串加密与简单密码,暂时不做

字符串加密2 题目没有读懂,暂时没有研究

 

 

称砝码

迷宫问题

Sudoku-Java

线性插值

多线程

四则运算、表达式求值

 

计算字符串的距离

iNoc产品部--杨辉三角形的变形

MP3光标移动

 

最长公共子串和最长公共子序列。。。傻傻烦不清楚

 

举个栗子:

str1="123ABCD456"  str2 = "ABE12345D"

最长公共子串是:123

最长公共子序列是:12345

 

这两个都可以用动态规划,只是状态转移方程有点区别

 

最长公共子序列是:

dp[i][j] -- 表示子串str1[0...i]和子串str[0...j]的最长公共子序列

当str1[i] == str2[j]时,dp[i][j] = dp[i-1][j-1] + 1;

否则,dp[i][j] = max(dp[i-1][j], dp[i][j-1]);

最优解为dp[len1-1][len2-1];

 

最长公共子串是: dp[i][j] -- 表示以str1[i]和str2[j]为结尾的最长公共子串 当str1[i] == str2[j]时,dp[i][j] = dp[i-1][j-1] + 1; 否则,dp[i][j] = 0;

最优解为max(dp[i][j]),其中0<=i

公共字串计算

 

自动售货系统

 

 

24点游戏和火车进站 24点运算

 

计算字符串相似度

 

字符统计

自己实现一遍

 

最长上升子序列:

合唱队, Redraiment的走法

 

牛顿迭代法。设f(x)=x3-y, 求f(x)=0时的解x,即为y的立方根。

根据牛顿迭代思想,xn+1=xn-f(xn)/f'(xn)即x=x-(x3-y)/(3*x2)=(2*x+y/x/x)/3;

 

 

表达式求值,矩阵乘法次数

迷宫问题

 

 

Niu15

#include
int main()
{
    int num;
    while(std::cin>>num)
    {
        int num1=0;
        while(num>0)
        {
            int a=num%2;
            if(a==1)
            {
                num1++;
            }
            num=num/2;
        }
        std::cout<

牛客14

#include
#include
#include
#include
int main()
{
    int num;
    while(std::cin>>num)
    {
        std::vector mvec;
        for(int i=0;i>mstr;
            mvec.push_back(mstr);
        }
        sort(mvec.begin(),mvec.end());
        for(auto it=mvec.begin();it!=mvec.end();it++)
        {
            std::cout<<*it<

 

 

 

你可能感兴趣的:(华为机试)