文档章节

乐视2016暑期实习编程题

r
 ranjiewen
发布于 2016/11/03 23:52
字数 950
阅读 0
收藏 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/5690930.html

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

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

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

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

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

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

明非_
2014/09/25
897
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

没有更多内容

加载失败,请刷新页面

加载更多

java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
今天
6
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
5
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
15
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
15
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部