题目

(现代版)俗话说:流言止于智者,聊天止于呵呵。输入一段聊天记录,你的任务是数一数有 多少段对话“止于呵呵”,即对话的最后一句话包含单词
hehe或者它的变形。 具体来说,我们首先提取出对话的最后一句话,把所有非字母的字符替换成空格,把所有字符
替换成小写,然后导出一个单词列表(由空格隔开),只要列表中的任何一个单词是 hehe,这 段对话就算作“止于呵呵”。比如,“Hi! Are
you OK?” 会变成四个单词:hi, are, you, ok。注 意,单词列表可以是空的(比如,这句话是:"?!?!!")
有些人喜欢使用 hehe的变形,这些变形也应被视为“呵呵”。为了简单起见,本题只考虑由 n(n>1)个 he连接而成的单词,比如
hehehe或者 hehehehe。注意,以 hehe为连续子串的其他单 词不应视为“呵呵”,比如 hehee,或者 ehehe。
每两个不同人之间的所有对话算作“一段对话”。

输入

输入仅包含一组数据,每行是一句对话,格式为:
人名 1->人名 2: 一句话. 每行最多包含 1000个字符,最多 100行。

输出

输出“止于呵呵”的对话段落所占的百分比,四舍五入到最近的整数。输入数据保证答案不会 同时和两个整数最近。

样例输入

A->B: Hello!
A->C: Hi!
B->A: Hehe
B->D: Hei!
D->B: How are you?
A->C: Hi???
A->C: Are you there?
B->D: Hehehei!
D->B: What does hehehei mean?
F->E: I want to hehehehehe yah.

样例输入出

50%

代码

import java.util.HashMap;
import java.util.Scanner;
public class Main {public static void main(String[] args) {// TODO Auto-generated method stubScanner scan = new Scanner(System.in);HashMap<String,String> map = new HashMap<String,String>();while (scan.hasNextLine()) {String s = scan.nextLine();String msg = s.split(":")[1];String p="";String p1 = s.substring(0, s.indexOf("-"));String p2 = s.substring(s.indexOf(">") + 1, s.indexOf(":"));if(p1.compareTo(p2)>0){p=p1;p1=p2;p2=p;}p=p1+"-"+p2;map.put(p,msg);}int sum = map.size();int count = 0;for(String msg: map.values()){String s = "";for(int i=0;i<msg.length();i++){if(!Character.isLetter(msg.charAt(i)))s+=" ";elses+=Character.toLowerCase(msg.charAt(i));}String[] s1 = s.split(" ");int flag = 0;//设立标志位0int c=0;for(String ss:s1){if(ss.length()>=4)//ss至少是两位{if(ss.length()%2==1)continue;//奇数位直接退出for(int i=0;i<ss.length();i+=2){//奇数h 偶数eflag=0;if(ss.charAt(i)=='h'&&ss.charAt(i+1)=='e')c++;else{ flag=1;break;}}if(flag==0&&c>=2)break;}}if(flag==0&&c>=2)count++;}System.out.printf("%.0f%%\n",(1.0*count/sum)*100);}}

JAVA实现 - 问题 H: 聊天止于呵呵相关推荐

  1. java MulticastSocket实现传输H.264+AAC的组播RTSP服务(音画不同步)

    传输H.264+AAC的组播RTSP服务(音画不同步) 参考:从零开始写一个RTSP服务器(八)一个多播的RTSP服务器 h264文件:test.h264文件地址 aac文件:test.aac文件地址 ...

  2. java native方法体在哪_java中native方法的使用

    native關鍵字說明其修飾的方法是一個原生態方法,方法對應的實現不是在當前文件,而是在用其他語言(如C和C++)實現的文件中.Java語言本身不能對操作系統底層進行訪問和操作,但是可以通過JNI接口 ...

  3. 谁说双非本科就一定无缘阿里?H哥粉丝刚刚6面通过,喜得Offer!

    本文来自作者投稿(原作者:小胖儿),原作者是一位2021届本科毕业生,就读于一所双非(非985.非211)院校,在今年2月份的时候,我曾经帮他指导过简历,并且根据他的简历内容帮他提了一些可能会问到的问 ...

  4. Java中native关键字

    今日在hibernate源代码中遇到了native关键词,甚是陌生,就查了点资料,对native是什么东西有了那么一点了解,并做一小记. native关键字说明其修饰的方法是一个原生态方法,方法对应的 ...

  5. android java和c混合编程_C/C++在Java、Android和Objective-C三大平台下实现混合编程

    Android和iOS开发都支持C++开发,可以一套代码多平台使用.同时C++难以反编译的特性也可以为Android开发带来代码的保密,另一native特性也可以提高代码的运行效率. 一.为什么使用C ...

  6. android java和c混合编程_C/C++在Java项目、Android和Objective-C三大平台下实现混合编程...

    Android和iOS开发都支持C++开发,可以一套代码多平台使用.同时C++难以反编译的特性也可以为Android开发带来代码的保密,另一native特性也可以提高代码的运行效率. 一.为什么使用C ...

  7. java 自动装载_springboot自动装载

    代码分析版本为2.1.4.RELEASE ! V: P8 _  m  d% `' d: C$ N. ~springboot是spring的拓展框架,不需要再写xml文件,来配置bean的加载,使开发更 ...

  8. java调用jni接口,Java 中通过jni接口调用native code

    [    Java语言本身是通过Java的虚拟机解释执行的,因此对于Java中调用本地动态链接库的问题便提上了日程,为何会存在这样的需求呢?因为Java本身的机制导致一些要求高效率 在上上篇中已经介绍 ...

  9. java面试题二十八 从未用过的 native

    一 考题 二 native延伸 native关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件,而是在用其他语言(如C和C++)实现的文件中.Java语言本身不能对操作系统底层进行访 ...

最新文章

  1. php中文乱码问题解决方案
  2. 模拟键盘输入的keycode
  3. Request.UrlReferrer详解
  4. jQuery的回调函数
  5. 一台服务器多个网站同端口,多个客户端如何同时连接到服务器上的一个端口,比如80?...
  6. 中国乙二醇型汽车防冻液市场运营能力分析与投资战略规划研究报告2022-2028年版
  7. java卡片布局显示效果_三十二、Java图形化界面设计——布局管理器之CardLayout(卡片布局)...
  8. android 照片拼接长图_我才发现,微信里面有一个功能,能将手机照片自动拼成长图...
  9. python 修改array_python 基础_ 数组的 增删改查3
  10. 单元词检索计算机,单元词法
  11. 基于zeromq的高性能分布式RPC框架Zerorpc 性能测试
  12. C++ 字节流与二进制字符串相互转换(一个简单的明文加解密程序)
  13. acs880变频器选型手册_变频器是否需要加进线、出线电抗器?
  14. HDU-2161 Primes
  15. python+nodejs+Vue体检信息管理系统项目源码
  16. 连续两次入围Gartner魔力象限的Quick BI到底有何魔力?
  17. 线条边框简笔画图片大全_每天学一幅简笔画生活小物简笔画图片大全!
  18. tomcat发布应用报错Error starting child
  19. 【信息技术】【2010.09】声纳和水下摄像机图像分析
  20. Uipath操作浏览器

热门文章

  1. js和java script,js动态添加javascript标签
  2. 逆向入门分析实战(一)
  3. 技术管理(一)——角色转变!如何从管理好自己到管理好团队
  4. Linux虚拟机安装MySQL的操作过程
  5. w10系统,怎样调整应用的分辨率
  6. 重新安装CentOS7出现的问题及解决办法
  7. git:git 的协议
  8. FileZilla在传输文件过程 中会出现:550 can't access file.
  9. 安全世界 5正当时:亚信安全2020第五空间战略发展高峰论坛举行
  10. GIzMOs: Genuine Image Mosaics with Adaptive Tiling自适应马赛克图像拼接