华为OD机试真题 Python 实现【字符串重新排序】【2023Q1 100分】,附详细解题思路

news2024/9/23 15:29:29

在这里插入图片描述

目录

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

一、题目描述

给定一个字串s,s包含以空格分隔的若干个单词,请对s进行如下处理后输出:

1、单词内部调整

对每个单词字母重新按字典序排序。

2、单词间顺序调整:

  1. 统计每个单词出现的次数,并按次数降序排列;
  2. 次数相同时,按单词长度升序排列;
  3. 次数和单词长度均相同时,按字典序升序排列。

请输出处理后的字符串,每个单词以一个空格分隔。

二、输入描述

行宁符串,每个宁符取值范围: [a-zA-Z0-9]以及空格,宁符串长度范围: [1,1000]。

三、输出描述

重新排序后的宁符串,每个单词间隔1个空格,且首属无空格。

四、解题思路

  1. 首先,将输入的字符串按空格分割成单词数组;
  2. 创建一个HashMap用于统计每个单词出现的次数;遍历单词数组,对每个单词进行字典序排序,并将排序后的单词作为键,出现次数作为值存入HashMap中;如果已经存在相同的键,则更新对应的值加1;
  3. 将HashMap中的键值对转换为列表,以便排序;
  4. 对列表进行排序,排序规则为:按照出现次数降序排列,如果次数相同,则按照单词长度升序排列,如果长度也相同,则按照字典序升序排列;
  5. 遍历排序后的列表,按照出现次数输出对应的单词;由于可能存在多个相同的单词,因此需要根据出现次数进行循环输出;
  6. 构建最终的结果字符串,每个单词之间以空格分隔,最后一个单词后不加空格;

五、Python算法源码

def solution(a0):
    dic = {}
    times = list()
    a = list()
    for i in range(len(a0)):
        n = len(a0[i])
        b = list()
        for j in range(n):
            b += a0[i][j]
        b.sort()
        b0 = str()
        for j in range(n):
            b0 += b[j]
        a.append(b0)
    for x in a:
        if x not in dic :
            dic[x] = 1
        else:
            dic[x] += 1
    for x in dic:
        times.append((x,len(x),dic[x]))
    times.sort(key=lambda x:(-x[2],x[1],x[0]))
    c = str()
    for x in times:
        for i in range(x[2]):
            c += x[0] + ' '
    return c[: -1]
if __name__ == "__main__" :
    a = [i for i in input().strip().split()]
    print(solution(a))

六、效果展示

1、输入

nezha study java

2、输出

aajv aehnz dstuy

在这里插入图片描述


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

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

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/728276.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据库之表的创建及数据类型

目录 创建表 简单语法: 固定格式: 案例 数据类型 文本类型 文本型 字符串型 二进制文本 枚举型 集合型 数字类型 整数型 浮点型 Date类型 DATE()日期 DATETIME() 日期和时间的组合 TIMESTAMP() 时间戳 TIME() 时间 YEAR() 2 位或 4 位…

Vue组件库Element-常见组件-表格

对于Element组件的使用,最主要的就是明确自己想要达到的效果,从官网中将对应代码复制粘贴即可,最重要的是要读懂不同组件官网中提供的文档,以便实现自己想要的效果 常见组件-表格 Table:表格:用于展示多条…

AE脚本适应底栏边框文字标题动画 Box It v1.0使用教程

这个AE脚本Box It主要是用于快速创建复杂的动态文本框,非常适合下第三标题、标签、聊天气泡、多个文本框等。 它的主要特点有: 1. 简单易用,无需键入任何代码,通过简单的拖放和调整参数即可创建动态文本框 2. 包含多种预设选项,如简单、标准、粗体、标签、聊天气泡等,可以直接使…

多语言跨境电商系统开发,支持一键铺货,商品采集

随着全球贸易的不断发展,跨境电商成为了一个日趋热门的领域。作为一种全新的商业模式,跨境电商为消费者提供了更加便捷、高效、多样化的购物体验。然而,要实现跨境电商的顺利发展,必须依靠先进的技术手段。 跨境电商系统是实现跨…

Stable Diffusion WebUI 集成 LoRA模型,给自己做一张壁纸 Ubuntu22.04 rtx2060 6G

LoRA概念 LoRA的全称是LoRA: Low-Rank Adaptation of Large Language Models,可以理解为stable diffusion(SD)模型的一种插件,和hyper-network,controlNet一样,都是在不修改SD模型的前提下,利用少量数据训…

java web介绍

Web Java 技术栈 B/S 架构:Browser/Server,浏览器/服务器架构模式,它的特点是,客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器端。浏览器只需要请求服务器,获取 Wb 资源,服务器把 Wb 资源发送给…

如何做好数仓 BI 项目的规划与建设?

BI项目规划和实施方案是保障BI项目顺利落地的首要环节。好的项目规划能有效提升开发人效,缩短项目周期,实现项目预期目标。 构建运营数据的可视化是为企业运营管控提供有效的支撑,成为企业在大数据时代智慧运营的必然路径。 在实际BI项目的…

古典密码之一的Playfair密码的实现

目录 一.古典密码 二.Playfair密码的介绍 三.Playfair密码的实现 1.密钥转大写和密钥去重 2.输入密钥并打印密钥表 2.输入明文并加密为密文 3.输入密文并解密为明文 四.全部代码 一.古典密码 最早的加密方法可以追溯到公元前4000年左右的古代文明时期。埃及人、古希腊…

python解析考试题库数据

应单位要求需要参加某个考试,但考试需要从手机端登陆学习,1000多道题需要挨个刷一遍太过于麻烦,萌生了把题目和答案全部扒下来的想法,再用python做数据的清洗和梳理,最后整合出来所有的考试题库信息。 首先打开浏览器…

Socks5代理是什么?有哪些优势?

在线隐私和⽹络领域,Socks5代理已经成为⼀种受欢迎且强⼤的⼯具。但是Socks5是什么呢?使⽤Socks代理有什么优势?在本⽂中,Oxylabs和你一起探讨这些问题,揭⽰Socks5代理的世界。 深⼊了解Socks5代理 socks&#xff08…

计算机网络 day3 广播风暴 - VLAN - Trunk

目录 广播风暴: 1.什么是广播风暴? 2.危害: 3.防范 STP生成树协议:(72条消息) 生成树协议 — STP_生成树协议步骤_一下子就醒了的博客-CSDN博客 VLAN: VLAN是什么? VLAN起到的作用: 广…

软件测试常见基础知识面试题

一、测试基础理论 1.1 什么是软件测试? 为了发现程序中的错误而执行程序的过程 1.2 软件测试流程 1)需求调查 2)制定初步的项目计划 3)测试准备 4)测试设计 5)测试实施 6)测试评估 1.3 软件…

华为OD机试真题 Python 实现【字符串解密】【2023 B卷 100分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、解题思路五、Python算法源码六、效果展示1、输入2、输出3、说明 一、题目描述 给定两个字符串string1和string2。 string1是一个被加扰的字符串。string1由小写英文字母(‘a’-‘z’)和数字字符&#xf…

【SCI征稿】计算机算法、通信、人工智能、网络、物联网、机器学习等领域,13本期刊影响因子上涨,这几本期刊录用快

2023年JCR发布后,计算机领域SCI期刊有13本影响因子上涨,审稿周期短,进展顺利: 1️⃣IF:6.0-7.0↑,JCR2区,中科院3区,SCI&EI 双检,CCF-C类 征稿领域:概率…

喜讯 | ShowMeBug CEO 李亚飞获评“稀土开发者”年度技术引领人物

近日,由稀土开发者大会举办的「掘金技术引力榜」评选活动揭晓,李亚飞从众多优秀的技术开发者中脱颖而出,获评年度技术引领人物。 稀土开发者大会年度技术引领人物获奖榜单 稀土开发者大会是由稀土掘金技术社区主办,集国际化前瞻…

c# opencv 找到图像的轮廓,并绘制轮廓

Mat colorMat new Mat();Mat outMat new Mat();Mat resultMat new Mat();Mat src Cv2.ImRead("I:\\mask.jpg");//转成灰度图Cv2.CvtColor(src, colorMat, ColorConversionCodes.RGB2GRAY);//对灰度图像进行阈值操作得到二值图像Cv2.Threshold(colorMat, outMat, 0…

【Python编程系列】3、初识Python代码:输入输出

1、输出 在PyCharm上新建项目和python文件后,编写一行代码,输出:"Hello World"这句话。代码为: print("Hello World")PyCharm上运行代码有两种方式,如下图1和2。代码运行结果在下方显示: print函数打印字符串时加单引号或双引号,不能混用。 单引…

大厂都在做的jmeter接口自动化测试登峰造极的JMETER实现接口自动化测试

目录 一、JMETER的环境搭建 二、JMETER的汉化 三、JMETER的接口请求 四、JMETER的参数化 五、JMETER的JSON传参 六、JMETER的断言添加 一、JMETER的环境搭建 二、JMETER的汉化 临时汉化方法:打开jmeter,options-->choose language-->选择语言…

simulink 常用子系统 核心是函数封装simulink function

目录 Enabled Subsystem Triggered Subsystem Function-call Subsystem Simulink Function Enabled Subsystem Triggered Subsystem Function-call Subsystem Simulink Function 类似c函数的封装 数组形参

ikun猛戳进来丨使用Python打造属于你的ikun音乐播放器,简直不要太好用

首先声明,我不是小黑子,我不是小黑子! 作为一个ikun,时刻都在想着我们家姐姐! 这不上次用Python做了一个ikun飞机大战,今天再给大家整活一手,Python tkinter开发一个专属ikun音乐播放器&#x…