当前位置: 首页 > news >正文

【华为机考真题】字符串压缩

这里写自定义目录标题

  • 部分通过,请问该咋改

部分通过,请问该咋改

给定一段英文句子和一个英文单词列表。英文句子包含英文单词和标点符号,
其中:
1)英文单词只包含[a-zA-Z]范围内的字符
2)标点符号包括逗号,句号,双引号(双引号两边至少有一个空格)
如果列表中有单词在句子中存在(大小写不敏感)且该单词未被双引号包含,则使用该单词在列表中的索引值(索引值从0开始)代替句子中的该单词
如果英文单词列表存在重复的英文单词,则该单词最后出现英文单词
解答要求:
时间限制:C/C++400ms,其他语言:800ms
内存限制:C/c++200MB,其他语言:400MB

输入:
第一行,一段英文句子
第二行,英文单词列表

提示:每个英文单词长度在[1-50]范围内
输入的英文句子长度在[0,10000]范围内
输入英文单词列表长度在[0,10000]范围内
英文句子不会出现双引号不匹配的情况

输出:
替换后的英文句子

样例1

输入: Hello world.Good Hello LOOP
输出: 1 world.
解释:hello在英文句子中存在,则使用hello的索引值进行替换,得到结果1 world.```、
样例2```bash
输入: An introduction is "the first paragraph" of your paper. what say first Second IS introduction IS end输出: An 5 6 "the first paragraph" of your paper.
解释:字符串列表中的introduction,IS在句子中存在,first虽然在句子中存在但被双引号包含了,所以使用introduction单词,IS单词(最后一次出现)的索引值进行替换,得到的结果为 An 5 6 "the first paragraph " of your papger

本人写的代码如下,但只是部分用例,还需修改,但不知如何进行修改,请有经验的同学解答一下。
部分通过代码如下所示:

import java.util.*;
import java.io.*;
public class Test {private  static  String replaceWithIndex(String sentences,List<String> worldlist){String[] words = sentences.split("\\s+");StringBuilder replaceSentence = new StringBuilder();for (String word: words){// word = word.replaceAll("[^a-zA-Z]","");int index= worldlist.indexOf(word);if(index != -1){replaceSentence.append(index).append(" ");}else {replaceSentence.append(word).append(" ");}}return replaceSentence.toString().trim();}public static void main(String[] args) throws IOException {Scanner sc = new Scanner(System.in);String sentences = sc.nextLine();String str = sc.nextLine();List<String> wordList = new ArrayList<>();for(String word : str.split("\\s+") ){wordList.add(word);}String replaceSentences = replaceWithIndex(sentences,wordList);System.out.println(replaceSentences);sc.close();}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 汽车技术智能化程度不断提升,线束可靠性如何设计?
  • 笔记 3 : 继续彭老师课本第 3 章的 arm 的汇编指令
  • lua 游戏架构 之 LoaderWallet 异步加载
  • 在python中使用正则表达式
  • 微服务和VUE入门教程(16): zuul 熔断
  • JMeter使用手册
  • Redis集群部署Windows版本
  • EXCEL怎么自动添加表格吗?
  • STM32高级运动控制系统教程
  • 时钟芯片LMK04828调试记录
  • unity 实现图片的放大与缩小(根据鼠标位置拉伸放缩)
  • 在LabVIEW中实现图像矫正
  • 56 网络层
  • ActiViz中的选择点vtkWorldPointPicker
  • CSS3 简介
  • 《剑指offer》分解让复杂问题更简单
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • Android Studio:GIT提交项目到远程仓库
  • Angularjs之国际化
  • C++11: atomic 头文件
  • download使用浅析
  • ECMAScript6(0):ES6简明参考手册
  • Java基本数据类型之Number
  • Joomla 2.x, 3.x useful code cheatsheet
  • mongo索引构建
  • quasar-framework cnodejs社区
  • springMvc学习笔记(2)
  • vuex 学习笔记 01
  • 程序员该如何有效的找工作?
  • 从零搭建Koa2 Server
  • 将回调地狱按在地上摩擦的Promise
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 一个完整Java Web项目背后的密码
  • 在Unity中实现一个简单的消息管理器
  • 在weex里面使用chart图表
  • 自制字幕遮挡器
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • python最赚钱的4个方向,你最心动的是哪个?
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • #define 用法
  • #include
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (003)SlickEdit Unity的补全
  • (2)空速传感器
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (8)STL算法之替换
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (java)关于Thread的挂起和恢复
  • (第30天)二叉树阶段总结
  • (分类)KNN算法- 参数调优
  • (回溯) LeetCode 40. 组合总和II
  • (六)vue-router+UI组件库
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战