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 }
View Code

 

 

题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 }
View Code

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

 

posted @ 2017-09-01 00:22  水中鱼的夏天  阅读(432)  评论(0编辑  收藏  举报