华为OD机试真题 Python 实现【分界线】【2023Q1 100分】,附详细解题思路

news/2025/2/22 6:23:51/

在这里插入图片描述

目录

    • 一、题目描述
    • 二、输入描述
    • 三、输出描述
    • 四、解题思路
    • 五、Python算法源码
    • 六、效果展示
      • 1、输入
      • 2、输出

一、题目描述

电视剧《分界线》里面有一个片段,男主为了向警察透露案件细节,且不暴露自己,于是将报刊上的字剪切下来,剪拼成匿名信。现在有一名举报人,希望借鉴这种手段,使用英文报刊完成举报操作。

但为了增加文章的混淆度,只需满足每个单词中字母数量一致即可,不关注每个字母的顺序解释:单词on允许通过单词’no’进行替代报纸代表newspaper,匿名信代表anonymousLetter,求报纸内容是否可以拼成匿名信。

二、输入描述

第一行输入newspaper内容,包括1-N个字符串,用空格分开
第二行输入anonymousLetter内容,包括1-N个字符串,用空格分开

  1. newspaper和anonymousLetter的字符串由小写英文字母组成且每个字母只能使用一次;
  2. newspaper内容中的每个字符串字母顺序可以任意调整,但必须保证字符串的完整性(每个字符串不能有多余字母);
  3. 1<N<100 , 1<= newspaper.length, anonymousLetter.length <= 104;

三、输出描述

如果报纸可以拼成匿名信返回ture,否则返回false。

四、解题思路

  1. 读取输入的报纸内容和匿名信内容。
  2. 将报纸内容和匿名信内容分别以空格为分隔符拆分成字符串数组。
  3. 创建一个HashSet,用于存储报纸内容中每个字符串按字母排序后的值。
  4. 遍历报纸内容数组:
    • 对于每个字符串,将其转换为字符数组,并按字母顺序进行排序。
    • 将排序后的字符数组转换为字符串,并添加到HashSet中。
  5. 创建一个布尔变量flag,并将其初始化为true。
  6. 遍历匿名信内容数组:
    • 对于每个字符串,将其转换为字符数组,并按字母顺序进行排序。
    • 将排序后的字符数组转换为字符串。
    • 如果HashSet中不包含该字符串,则将flag设为false,并跳出循环。
  7. 根据flag的值,输出"true"或"false"表示报纸是否可以拼成匿名信。

该算法的时间复杂度为O(N+M),其中N是报纸内容的长度,M是匿名信内容的长度。因为需要遍历两个字符串数组,对每个字符串进行排序,并将排序后的字符串存储到HashSet中。最终的空间复杂度为O(N),取决于HashSet的存储空间。

五、Python算法源码

import sysdef test():# 读取第一行的narr1=[]for i in range(2):# 读取每一行line = sys.stdin.readline().strip()# 把每一行的数字分隔后转化成int列表arr3=[]arr4=[]arr2 = list(map(str, line.split()))for j in range(len(arr2)):for k in arr2[j]:arr3.append(k)arr3.sort()arr4.append(arr3)arr3=[]arr1.append(arr4)for i in range(len(arr1[1])):if arr1[1][i] in arr1[0]:arr1[0].remove(arr1[1][i])else:return('false')return('true')
print (test())

六、效果展示

1、输入

ac df
adf

2、输出

false

在这里插入图片描述


🏆下一篇:华为OD机试真题 Python 实现【相对开音节】【2022Q4 100分】,附详细解题思路

🏆本文收录于,华为OD机试(Python)真题(A卷+B卷)

每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,可加入华为OD刷题群(私信即可),发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述


http://www.ppmy.cn/news/708470.html

相关文章

弯道超车?测试新人与测试老鸟的距离,你的测试之路可以这样走...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 工作1-3年测试人 …

CAD经验技巧:CAD打印出来的图纸有些线条很淡是什么原因?

从事相关的设计的人员应该都知道&#xff0c;CAD设计图纸是一项很复杂的过程&#xff0c;通常要绘制完一份CAD图纸模型&#xff0c;最少也要好几个小时&#xff0c;绘图图纸的时候&#xff0c;我们都喜欢采用不同颜色的线条去区分图形和标注&#xff0c;这样有利于眼睛的分辨。…

html 页面怎么打印很小,网页上的内容打印出来太小怎么处理

1上网时将浏览器缩放比率设置为100%&#xff0c;一般情况下&#xff0c;网页设计者都会考虑网页的比例尺寸&#xff0c;100%是设计者理解的视觉体验。在打开一个网页时&#xff0c;点击浏览器右下角的“浏览器缩放功能”&#xff0c;在弹出的列表中选择“缩放比例100%”即可。如…

连接PC的打印机打印时乱码

原因及处理&#xff1a; 查看打印机数据线是否松动。更换打印机数据线调试。打开“运行”---输入spool 回车&#xff0c;删除PRINTERS文件夹中的所有文件。重启电脑。

CAD中解决打印图纸模糊而且有的字体深浅不一的方法

CAD中解决打印图纸模糊而且有的字体深浅不一的方法 参考文章&#xff1a; &#xff08;1&#xff09;CAD中解决打印图纸模糊而且有的字体深浅不一的方法 &#xff08;2&#xff09;https://www.cnblogs.com/qdrs/p/9795024.html 备忘一下。

【前端工程化】Docker入门

背景 当我们使用&#xff08;开发&#xff09;某个软件&#xff0c;可能得确保操作系统、依赖、环境变量相同的问题&#xff0c;这些配置可能就需要花费很多时间。使用虚拟机&#xff0c;可以解决上述部分问题&#xff0c;但是它又引发了其他问题&#xff1a;资源占用多、冗余…

LeetCode349. 两个数组的交集

两个数组的交集 文章目录 题目解法方法一&#xff1a;数组方法二&#xff1a;unordered_set 题目 给定两个数组 nums1 和 nums2 &#xff0c;返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1&#xff1a; 输入&#xff1a;…

苹果自带的清理软件_苹果用户福利 分享一款腾讯出品的垃圾清理软件

苹果电脑的操作系统和Windows是完全不一样的&#xff0c;尤其是对第三方软件的权限控制非常严格&#xff0c;以至于我们几乎找不到一款趁手的系统清理软件&#xff0c;很多人都在用CleanMyMac当主力清理软件&#xff0c;不过想用完整的功能你必须付费&#xff0c;并不是所有人都…