1.数据中包含u51的个数

题目描述:

有一个长度是200000的队列,队列中的元素均为字符串,现需要创建3个线程分别取出队列中的元素,并查找元素中是否含有字符串u51,如果含有该字符串,则计数器加1,直到队列元素都取出完,输出含有字符串u51的个数。

输入描述:

200000行字符串数据,可以是个文件作为队列输入。

输出描述:

所有数据中包含u51的个数

输入:

u51Abc

输出:

import java.io.BufferedReader;
import java.io.InputStreamReader;public class Text10 {public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));int count = 0;StringBuffer sb = new StringBuffer();//读到响应的ASCII码转成char,sb里面存3个char型变量sb.append((char) br.read());sb.append((char) br.read());sb.append((char) br.read());//让sb中只保留3个值,每经过一次删掉第一个值然后在末尾增加一个值,然后匹配当前字符串是否//和"u51"相等,如果相等则count++,最后返回的count值即为"u51"的个数while (br.ready()) {if (sb.toString().equals("u51")) {count++;}sb.delete(0, 1);sb.append((char) br.read());}System.out.println(count);}
}

2.选票

设计一个算法,给定一组带权重的选票,计算出当选者。若有多个候选人加权后的分数相同,得票最多的候选人获胜。(忽略多个候选人票数与加权和均相同的情况)

输入描述:

输入第一行为选票数组v[0..n-1],第二行为权重数组w[0..n-1]。v中元素代表选举中该选票所投给的候选人ID(整数表示),w中对应下标的元素代表该选票所具有的权重(整数表示),其中0<n<=10000。

输出描述:

当选的候选人ID
思路:用map记录的Key记录候选人的ID,用Value记录候选人的权重。并且用map2来统计候选人的得票数量,key用来记录候选人的ID,Value来统计候选人的次数(主要是为了防止加权后分数相同的情况)。最后遍历输出结果。

import java.util.Scanner;
import java.util.TreeMap;public class Text5 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);while(sc.hasNext()){String v=sc.nextLine().trim();String w=sc.nextLine().trim();String[] vv=v.split(" ");String[] ww=w.split(" ");TreeMap<String,Integer> map=new TreeMap<String,Integer>();TreeMap<String,Integer> map2=new TreeMap<String,Integer>();for(int i=0;i<vv.length;i++){if(map.containsKey(vv[i])){map.put(vv[i], map.get(vv[i])+Integer.parseInt(ww[i]));map2.put(vv[i],map2.get(vv[i])+1);}else{map.put(vv[i], Integer.parseInt(ww[i]));map2.put(vv[i], 1);}}int max=0;int re=0;for(String s:map.keySet()){if(max<map.get(s)){max=map.get(s);re=Integer.parseInt(s);}else if(max==map.get(s)){if(map2.get(re+"")<map2.get(s)){re=Integer.parseInt(s);}}}System.out.println(re);}}
}

51信用卡2018校园招聘编程题学习相关推荐

  1. 搜狗2018校园招聘编程题学习

    圆周上两点间的距离 时间限制:C/C++语言 1000MS:其他语言 3000MS 内存限制:C/C++语言 30720KB:其他语言 555008KB 题目描述: 定义圆周上两点的距离s为这两点之间 ...

  2. 网易2018校园招聘编程题

    [编程题] 魔法币 时间限制:1秒 空间限制:32768K 小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有,但是小易有两台魔法机器可以通过投入x(x可以为0) ...

  3. 网易2018校园招聘编程题真题集合

    1/8 [编程题]魔法币 #include<bits/stdc++.h> using namespace std; #define clr(a) memset(a, 0, sizeof(a ...

  4. 网易2018校园招聘编程题真题集合 详解

    ##编程题 ###一.魔法币 ####描述: 小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有,但是小易有两台魔法机器可以通过投入 xxx(xxx 可以为 00 ...

  5. [2018]试卷: 网易2018校园招聘编程题真题集合

    [编程题] 魔法币 小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有,但是小易有两台魔法机器可以通过投入x(x可以为0)个魔法币产生更多的魔法币. 魔法机器1: ...

  6. [网易]2018校园招聘编程题真题集合

    题目:  小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有,但是小易有两台魔法机器可以通过投入x(x可以为0)个魔法币产生更多的魔法币.  魔法机器1:如果投入 ...

  7. 网易2018校园招聘编程题真题集合2相反数

    这道题是说给出一个数,求他的"相反数",相反数是先把原先的数倒过来,然后把他和倒过来之前的相加. #include <iostream> #include <st ...

  8. 网易2018校园招聘编程题真题集合1魔法币

    一开始没有理解题意:这道题是说,每次把手头上的魔法币全都投入. 这道题一开始用了回溯,只通过80%,大数据通不过. #include <iostream> #include <str ...

  9. 网易2018校园招聘编程题真题集合3字符串碎片

    这道题不难,需要存下碎片的个数,就遍历字符串,保存刚刚遍历过的字符,如果这个字符和刚刚的字符不同,说明到了一个新的碎片,碎片个数+1. 最后存储保留两位的double,用一个char数组来存,spri ...

最新文章

  1. java slfj教程_SLF4J入门程序
  2. python 为html页面增加背景_Python 给html css自动添加注释
  3. redis将散裂中某个值自增_这些Redis命令你都掌握了没?
  4. Flutter StatefulBuilder 用来实现局部数据刷新
  5. mac下配置openfire
  6. JVM内存分配与垃圾回收
  7. Java Web文件下载
  8. 【Vegas原创】SQL Server 2005部署备份任务
  9. Java static的使用
  10. html5 video标签嵌入视频
  11. 信号与系统 Matlab 实验 画连续离散系统零极点图 分析连续、离散系统的频率特性 幅频特性曲线 相频特性曲线
  12. houdini 体积
  13. 企查查等人物关系图谱、企业图谱等效果
  14. 2017 多校4 Dirt Ratio
  15. 计算机网络 第五章 课后题答案
  16. 【HTTP】401未经授权的错误及其通常解决方案
  17. 计算机考研调剂心酸,考研,这一路走来、辛酸苦辣~百感交集~(转)
  18. draw.io软件添加常用字体
  19. Python定义全局变量的用法
  20. 淘宝爆款打造公式(仅供参考)

热门文章

  1. 网易云音乐 真实地址
  2. 夕阳红旅游团第三周报告
  3. 一款好看,有科技感的动态背景线条动态效果代码
  4. 什么叫系统后门?后门与漏洞有什么区别?
  5. 25A - IQ test
  6. 三次B样条曲线拟合算法
  7. 漫游测试之性能测试(5.5-查询设计)
  8. 【华为笔试】【模拟】【Java】竖直四子棋
  9. php 银行卡4位分隔,javascript将数字四位分隔模拟银行卡号码代码实例
  10. Java利用dom4j解析XML任意节点和属性