文档章节

乐视2016暑期实习编程题

r
 ranjiewen
发布于 2016/11/03 23:52
字数 950
阅读 3
收藏 0
      今天20170721做过这几道题很久了,上次做的一塌糊涂,先是理解题意,搞了一半天,第一道题不知道方向,后面才是转化为树的问题,递归求解;后面两道就是看起来很简单,就是复杂度达不到,还是多积累!

/*!
 * \file 乐视暑期实习.cpp
 * \date 2016/07/20 17:33
 *
 * \author ranjiewen
 * \contact: ranjiewen@outlook.com
 *
 */

//题目链接:http://www.nowcoder.com/questionTerminal/243c12aea2e14de1a05fcbb412556853?difficulty=00100&orderByHotValue=0&pos=3

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int getNum(vector<string> data, int i, string &s)
{
    int num = 0;
    int j;
    for (j = 0; j < data[i].size(); j++)
    {
        char a = data[i][j];
        if (s.find(a) == string::npos)
        {
            s.push_back(a);
            if (i == data.size() - 1)
            {
                num++;
                s.pop_back();
            }
            else
            {
                num += getNum(data, i + 1, s);
                s.pop_back();
            }
        }
    }
    //s.pop_back();
    return num;
}

int main()
{
    vector<string> data;
    int n;
    while (cin >> n)
    {
        int i = 0;
        string s = "";  
        int num = 0;
        for (int j = 0; j < n; j++)
        {
            string tmp;
            cin >> tmp;
            data.push_back(tmp);
        }
        cout << getNum(data, i, s) << endl;
        data.clear();
    }
    return 0;
}


////*将问题转化为求一棵树第n层有多少叶子节点的问题,所以使用DFS方法,只需要判断有哪些分支有n层即可*
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int res;
vector<string> vc;  //记录每种方案,有bug
string str = {};
void getNumDFS(vector<string>, vector<int>, int, int);
int main(){
    int n;
    while (cin >> n){
        res = 0;
        vector<int> visit = { 0, 0, 0, 0, 0, 0 };
        vector<string> data;
        for (int i = 0; i < n; i++){
            string tmp;
            cin >> tmp;
            data.push_back(tmp);
        }
        getNumDFS(data, visit, n, 0);
        cout << res << endl;
    }
    return 0;
}
void getNumDFS(vector<string> data, vector<int> visit, int n, int p){
    if (n == p){
        res++;
        vc.push_back(str);
        str.erase(0,n);
        return;
    }
    for (int i = 0; i < data[p].size(); i++){  //从第一层开始,依次取值
        if (visit[data[p][i] - '0'] == 0){
            visit[data[p][i] - '0'] = 1;
            char temp = data[p][i];
            str += temp;   // 可以这样用
            getNumDFS(data, visit, n, p + 1);   //p为层数,即有N层,每层取值
            visit[data[p][i] - '0'] = 0;
        }
    }
    str.clear();
}



//题目链接:http://www.nowcoder.com/questionTerminal/382b23292d4640cea476cfa7a137db51

//在最近几场魔兽争霸赛中,赫柏对自己的表现都不满意。
//为了尽快提升战力,赫柏来到了雷鸣交易行并找到了幻兽师格丽,打算让格丽为自己的七阶幻兽升星。
//经过漫长的等待以后,幻兽顺利升到了满星,赫柏很满意,打算给格丽一些小费。
//赫柏给小费是有原则的:
//1.最终给格丽的钱必须是5的倍数;
//2.小费必须占最终支付费用的5%~10 % 之间(包含边界)。
//升星总共耗费A魔卡,赫柏身上带了B魔卡,赫柏想知道他有多少种支付方案可供选择。
//注:魔卡是一种货币单位,最终支付费用 = 本该支付的 + 小费

#include<iostream>
#include<math.h>
using namespace std;
int main(){
    int A, B;
    while (cin >> A&&cin >> B){        
        ////总费用的范围为   A / 0.95 <= f <= A / 0.9
        int a = ceil(A / 0.95), b = floor(A / 0.9);
        int count = 0;
        while (a%5!=0&&a<b)
        {
            a++;
        }
        for (int i = a; i <= b&&i<=B;i=i+5)
        {
            count++;
        }
        cout << count << endl;
    }
    return 0;
}


#include<iostream>
#include<math.h>
using namespace std;
int main(){
    int A, B, R;
    while (cin >> A&&cin >> B){
        ////总费用的范围为   A / 0.95 <= f <= A / 0.9
        int a = ceil(A / 0.95), b = floor(A / 0.9);
        //方法一
        R = 0;
        if (a <= B){
            if (b > B){      
                R = B / 5 - a / 5;
            }
            else{
                R = b / 5 - a / 5;
            }
            if (a % 5 == 0)   //达到每次++5的功能
                R++;
        }
        cout << R << endl;
    }
    return 0;
}


#include<iostream>
#include<math.h>
using namespace std;
int main(){
    int A, B;
    while (cin >> A&&cin >> B){        
        //方法三,从小费的角度出发呢?? 就是超时
        int start = A;
        int num = 0;
        while (start % 5 != 0 && start<B)
        {
            start++;
        }
        for (int i = start; i < B && ((start - A) <= start*0.1);i=i+5)
        {
            num++;
        }
        cout << num << endl;
    }
    return 0;
}

//题目链接:http://www.nowcoder.com/questionTerminal/2fdc144e8b5e4a9c8035bf7359a062fd?orderByHotValue=1&pos=129
//只需要按一个方向遍历一遍 利用勾股定理x*x+y*y = r*r 即可解决四分之一圆周的点 *4 即为结果

#include <iostream>
using namespace std;
#include <math.h>
int main()
{
    int S;
    while (cin>>S)
    {
        int num = 0;
        for (int i = 1; i*i <= S;i++)
        {
            int temp = S - i*i;
            int r = sqrt(temp);
            if (r*r==temp)
            {
                num++;
            }
        }
        cout << 4 * num << endl;
    }
}

 

本文转载自:http://www.cnblogs.com/ranjiewen/p/5901168.html

r
粉丝 1
博文 203
码字总数 28
作品 0
武汉
程序员
私信 提问
2018年互联网技术岗(数据分析)暑期实习面试经验

此经验帖适合想找互联网相关工作的人,如数据分析、算法工程师、数据挖掘工程师等。或者是想进入BAT等互联网公司的人,我会介绍他们暑期实习招聘流程及笔面试经验等,暑期实习往往是有转正机...

你的社交帐号昵
2018/05/22
0
0
前端相关整理

整理一下最近在网上收集的前端面试相关资料,包括预备知识、书籍、面试考点、面经等。前端方面资料其实太多太多,就光从知乎、前端乱炖、w3cplus 等网站就能找到很多,所以针对细节不发散,仅...

Seas0n_
2016/03/01
345
0
北京实习面试总结,四天面试6个公司,有所收获。

这次进京很仓促,对于自己来说其实没有任何预兆,想在北京找个实习,不过现在大三,学校方面压力也很大,导员不允许我出来实习,所以我就偷偷逃课出来了。说说最近几天的面试经历~四天,面试...

明非_
2014/09/25
898
7
2013暑期 微软实习笔试题目 第19题 节点S 与 节点T 最短路径是哪个选项?

2013暑期 微软实习笔试题目 第19题是个求两个节点间最短路径的问题:节点S 与 节点T 最短路径是哪个选项? 我做了下,答案有点模糊不敢确定是哪个? 请问大家的答案是什么? 题目参考:2013年...

liunkor
2013/09/15
296
2
机器学习实习生面试总结(阿里 腾讯等)

今年来一直在找暑期实习,现在基本已经确定了,前后历经差不多2个月吧,发现了很多自己的缺点,同时也希望写出来供需要的人参考了解 先说下我自己的情况吧,决定去腾讯TEG的机器学习岗实习了...

Gavin__Zhou
2017/05/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

饿了么交付中心语言栈转型总结

前言: 本文介绍了饿了么交付中心由python语言栈转换到java语言栈大致过程,一来是对前段时间的工作做下总结,另外也是想通过此次总结为其他应用服务转型提供些借鉴。写的不好,欢迎板砖。 背...

一肥仔
1分钟前
0
0
移植linux4.14内核到4412开发板

最近法师收到了很多留言,其中有一部分问法师什么时候更新,还有一大部分问法师我是买迅为的IMX6UL精英版好呢还是买4412精英版好呢,因为我们这俩个都不贵。法师的建议的是入手4412!为什么呢...

书白
5分钟前
4
0
提高GMAT语法能力方法解析,掌握技巧高分不是梦

GMAT考试对考生语法能力的要求涉及各部分的题目,熟练掌握语法知识对于考生获得高分有巨大的帮助。因此,学好GMAT语法,显得非常重要。下面小编就介绍一些提高GMAT语法能力的方法技巧。 做题...

bole6
8分钟前
2
0
100天搞定机器学习|day54 聚类系列:层次聚类原理及案例

几张GIF理解K-均值聚类原理 k均值聚类数学推导与python实现 前文说了k均值聚类,他是基于中心的聚类方法,通过迭代将样本分到k个类中,使每个样本与其所属类的中心或均值最近。 今天我们看一...

机器学习算法与Python实战
11分钟前
2
0
创龙TI KeyStone C66x多核定点/浮点DSP TMS320C665x底板B2B连接器、电源接口和拔码开关

TL665x-EasyEVM是广州创龙基于SOM-TL665x核心板研发的一款TI C66x多核定点/浮点高性能DSP开发板,采用核心板+底板方式,底板尺寸为200mm*106.65mm,采用4*50pin和1*80pin B2B工业级连接器,稳...

Tronlong创龙
12分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部