2017美团点评web前端在线编程题(1)(2)

题1:

题目描述:

很多网页上会显示一些其他网页的超链接,如一些搜索网页会逐条列出搜索到的条目。在一些网页中,被用户点击过的超链接会换一种颜色。

假设某网页一开始有n条超链接,从上到下有1-n编号,每条超链接都显示成一个字符串,最开始所有的超链接都显示为蓝色。现在给出用户点击过得那些超链接,

一条超链接只要被点击过了,就会由蓝色变成紫色,请输出最后所有的仍未蓝色的超链接。

输入:

第一行输入一个整数n,接下来n行,每行一个字符串,表示每个超链接的名称,名称只有小写字母构成,长度不超过20,且所有名称互不相同。(1<=n<=100)

接下来输入一个整数m,表示用户点击过m个超链接,最后m行表示用户点击过的超链接的名称,这m个有可能有重复。

输出:

输出若干行,每行一个名称,所有仍为蓝色的超链接的名称,名称的顺序按照字典序排序,如果全为紫色,直接不输出。

样例输入:

5
sina
qq
taobao
jd
baidu
3
qq
baidu
baidu

样例输出:

sina
toabao
jd

代码:

 1 import java.util.*;
 2 public class Meituan1 {
 3     public static void main(String[] args) {
 4         Scanner sc=new Scanner(System.in);
 5         while(sc.hasNextLine()){
 6             int n=Integer.parseInt(sc.nextLine());
 7             String[] arr=new String[n];
 8             for(int i=0;i<arr.length;i++){
 9                 arr[i]=sc.nextLine();
10             }
11             int m=Integer.parseInt(sc.nextLine());
12             String[] arr2=new String[m];
13             TreeSet<String> ts=new TreeSet<String>();
14             TreeSet<String> ts2=new TreeSet<String>();
15             for(int i=0;i<arr2.length;i++){
16                 arr2[i]=sc.nextLine();
17                 if(!ts.contains(arr2[i])){
18                     ts.add(arr2[i]);
19                 }
20             }
21             for(int i=0;i<arr.length;i++){
22                 if(!ts.contains(arr[i])){
23                     ts2.add(arr[i]);
24                 }
25             }
26             for (String s : ts2) {
27                 System.out.println(s);
28             }
29         }
30     }
31 }

题2

题目描述:

时辰总给了他的女儿凛一块魔法表,但是魔法表的表针总是指向奇怪的地方,所以凛决定修理一下这块表,当前表的指针指向了一个方向n1(0~359度之间,正北方向是0度,正东方向是90度),

她需要将表针调节到方向n2,她可以选择顺时针,也可以旋转逆时针旋转表针,若顺时针旋转角度会增大,逆时针则角度减小。当顺时针旋转到359度以后,再旋转一度则回到0度。

凛想要让表针旋转的角度尽量小,也就是以最短路径旋转到正确的方向。请你告诉他该如何旋转。当有多种旋转方式时,且旋转过的角度相同,就会选择顺时针旋转。

输入:

第一行包含一个整数n1,表示当前指针的方向

第二行包含一个整数n2,表示指针应该指向的方向  (0<=n1,n2<=359)

输出:

若需要顺时针旋转,输出x

若需要逆时针旋转,输出-x

样例输入:

315                45

45                  270

样例输出:

90                -135

代码如下:

 1 import java.util.*;
 2 class  rotClock1
 3 {
 4     public static void main(String[] args)
 5     {
 6         Scanner sc = new Scanner(System.in);
 7         System.out.println("input 2 numbers:");
 8         int n1 =sc.nextInt();
 9         int n2 = sc.nextInt();
10         int n11 = 0;
11         if (n1>=180)
12         {
13             n11 = n1-180;
14             if (n2>=0 && n2<=n11 )
15             {
16                 System.out.print( 360-n1+n2);
17             }else
18             {
19                 System.out.print( n2-n1);
20             }
21
22         }else
23         {
24             n11 = n1+180;
25             if (n2>n11 && n2<=359)
26             {
27                 System.out.print( -n1-360+n2);
28             }
29             else{
30                 System.out.print( n2-n1);
31             }
32         }
33     }
34 }

整体来看,美团的这两个题还是非常简单的。

时间: 2024-12-05 19:22:34

2017美团点评web前端在线编程题(1)(2)的相关文章

阿里前端在线编程题

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>demo</title> <style> * { padding: 0; margin: 0

WEB前端工程师编程能力成长之路

? [背景] 如果你是刚进入WEB前端研发领域,想试试这潭水有多深,看这篇文章吧:如果你是做了两三年WEB产品前端研发,迷茫找不着提高之路,看这篇文章吧:如果你是四五年的前端开发高手,没有难题能难得住你的寂寞高手,来看这篇文章吧: WEB前端研发工程师,在国内是一个朝阳职业,自07-08年正式有这个职业以来,也不过三四年的时间.这个领域没有学校的正规教育,没有行内成体系的理论指引,几乎所有从事这个职业的人都是靠自己自学成才.自学成才,一条艰辛的坎坷路,我也是这样一路走来.从2002年开始接触WE

2018阿里巴巴在线编程题

在其他博客上看到一道 "2018阿里巴巴在线编程题" 我记得题目大概是这样的:输入数据n(n>=6)代表n个数,从0-9任意输入n个数,然后在n个数选出6个数xx-xx-xx表示 时:分:秒,求出最小时间和最大时间,若时间无效,则输出时间无效,例如: 输入: 6 6 5 4 3 2 1 输出: 123456 235641 输入: 6 9 9 9 9 9 9 输出: 时间无效 看着有点意思,就自己做了一遍,输出格式自己美化了一下,没有严格按照题目要求.代码如下: def find_

CodeM 2017美团点评编程大赛资格赛

音乐研究 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 美团外卖的品牌代言人袋鼠先生最近正在进行音乐研究.他有两段音频,每段音频是一个表示音高的序列.现在袋鼠先生想要在第二段音频中找出与第一段音频最相近的部分. 具体地说,就是在第二段音频中找到一个长度和第一段音频相等且是连续的子序列,使得它们的 difference 最小.两段等长音频的 difference 定义为:difference = SUM(a[i] - b[i])2 (1 ≤ i ≤ n),

web前端面试真题! 面试的经历和回答只做参考1

xxxxx网络有限公司:下午1点50分左右到达公司附近,3点左右找到公司,因为公司周围环境不是很好,位置也很偏僻,关键是当时公司就3个人,当时想着:就算不在这里工作最起码要了解下面试过程什么的,所以在面试时完全不紧张,整个过程就像闲聊一样. 1.先自我介绍下? 好的,我叫xxx,毕业于xxxx,之前在xxxxx做WEB前端工作2年左右,10月底辞职到厦门,以后打算在厦门长期发展. 2.node是什么? node是服务端的JS,是一个事件驱动的非阻塞的I/O服务端js环境,本质上是对google

蘑菇街2016研发工程师在线编程题

传送门 第一题: [编程题] 搬圆桌 现在有一张半径为r的圆桌,其中心位于(x,y),现在他想把圆桌的中心移到(x1,y1).每次移动一步,都必须在圆桌边缘固定一个点然后将圆桌绕这个点旋转.问最少需要移动几步. 输入描述: 一行五个整数r,x,y,x1,y1(1≤r≤100000,-100000≤x,y,x1,y1≤100000) 输出描述: 输出一个整数,表示答案 输入例子: 2 0 0 0 4 输出例子: 1 题解转自:ixiaomo 思路很简单,千万别想复杂了 无论圆桌如何移动,都必须在圆

美团2016在线编程题 最大差(贪心)

题目描述 有一个长为n的数组A,求满足0≤a≤b<n的A[b]-A[a]的最大值. 给定数组A及它的大小n,请返回最大差值. 测试样例: [10,5],2 返回:0 思路:最大插差值dis初始化为0,用一个指针从头遍历,找到指针之前及指针指向的元素的最小值为被减数min1,若指针指向的元素A[i] - min1 > dis,则dis更新为 A[i] - min1. 1 class LongestDistance { 2 public: 3 int getDis(vector<int>

2017年最新 web前端开发学习路线

第一阶段--HTML的学习HTML的中文全称为超文本标记语言,它是一个网页的框架,不论是动态网页还是静态网页最终返回到浏览器端的都是HTML代码.浏览器将HTML代码解释渲染后呈现给用户,因此我们必须掌握HTML的基本结构和常用标记及属性. 其实学习HTML本身就是一个一个记忆和理解的过程,我们在学习的过程中可以借助Dreamweaver的"拆分"视图来辅助学习,然后在"设计"视图中看效果,最后,在"代码"视图中学本质,将各种视图 的优势发挥到极

微软2017年预科生计划在线编程笔试第二场 Diligent Robots

模拟. 不断分裂,然后计算时间,取个最小值.我也不知道这做法对不对的,读完题猜了一下,抱着$WA$的心态$submit$了,然后跳出一个$AC$. #include<bits/stdc++.h> using namespace std; long long n; int q; int main() { scanf("%lld%d",&n,&q); long long now=1; long long ans=n; long long ci=0; while(