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

华为OD-2024年E卷-英文输入法[100分] -- python

问题描述:

主管期望你来实现英文输入法单词联想功能。
需求如下:
依据用户输入的单词前缀,从已输入的英文语句中联想出用户想输入的单词,按字典序输出联想到的单词序列,如果联想不到,请输出用户输入的单词前缀。
注意:

  1. 英文单词联想时,区分大小写
  2. 缩略形式如”don’t”,判定为两个单词,”don”和”t”
  3. 输出的单词序列,不能有重复单词,且只能是英文单词,不能有标点符号

输入描述
输入为两行。
首行输入一段由英文单词word和标点符号组成的语句str;
接下来一行为一个英文单词前缀pre。
0 < word.length() <= 20
0 < str.length <= 10000
0 < pre <= 20
输出描述
输出符合要求的单词序列或单词前缀,存在多个时,单词之间以单个空格分割

The furthest distance in the world, Is not between life and death, But when I stand in front of you, Yet you don't know that I love you.
f
front furthest

解题思路:

按照规则进行模拟即可:

  1. 区分大小写
  2. 不能有标点符号包括缩略词的" ' ":去除标点符号,单独针对缩略词拆分为两个单词
  3. 不能重复且字典序:将处理后的单词加入set()集合 并 转换成列表进行排序
  4. 前缀匹配:单词的前缀部分 = 前缀
  5. 无法联想到则输出前缀

代码实现:

s = input().split()
target = input()
arr = set()#去重
for i in s:#去标点符号if "'" in i:t = i.index("'")arr.add(i[:t])arr.add(i[t+1:])else:temp = ''for j in i:if 'a' <= j <= 'z' or 'A' <= j <= 'Z':temp += jarr.add(temp)
arr = sorted(list(arr))#字典序排序
n = len(target)
f = True#是否存在
for i in arr:#联想if target == i[:len(target)]:print(i,end=' ')f = False
if f:print(target)

相关文章:

  • 深入实践Caffeine+Redis两级缓存架构:从原理到高可用设计
  • ubuntu 22.04 安装部署elk(elasticsearch/logstash/kibana) 7.10.0详细教程
  • 【JVM】- 内存模式
  • 如何在Windows上使用qemu安装ubuntu24.04服务器?
  • 【Elasticsearch】文档(二):更新
  • 变幻莫测:CoreData 中 Transformable 类型面面俱到(四)
  • Matlab数字信号处理——基于GUI的ECG信号处理平台设计与实现
  • 解决docker下的Linux系统调用GPU失败
  • STM32 HAL库学习 RNG篇
  • 国产操作系统-银河麒麟本地化部署Ollama国产开源的AI大模型Qwen3
  • 华为云Flexus+DeepSeek征文 | 基于华为云ModelArts Studio平台与Cherry Studio搭建知识库问答助手
  • 【运维系列】【ubuntu22.04】安装Docker
  • Matlab | matlab中100个常用函数全面解析
  • Spring事务简介
  • wordpress外贸独立站搭建步骤
  • 构建多智能体(AI Agent)的高效协作平台——CrewAI探索
  • 从代码学习深度学习 - 词的相似性和类比任务 PyTorch版
  • 电池预测 | 第32讲 Matlab基于CNN-BiLSTM-Attention的锂电池剩余寿命预测,附锂电池最新文章汇集
  • 【系统设计【3】】系统设计面试框架:从理论到实践的完整指南
  • Tomcat 配置双击启动
  • wordpress翻译配置/什么叫优化关键词
  • 怎么做购物网站的分类目录/成都新一轮疫情
  • 五星级酒店网站建设方案/宣传网页制作
  • 小城镇建设投稿网站/东莞搜索网络优化
  • 自己做网站好不好/seo站内优化和站外优化
  • 苏州做网站哪家好/bt磁力天堂torrentkitty