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
代码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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
代码如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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 }
整体来看,美团的这两个题还是非常简单的。