华为机试题:HJ14 字符串排序(python)

news2024/11/25 13:45:07

文章目录

  • 知识点详解
    • 1、input():获取控制台(任意形式)的输入。输出均为字符串类型。
    • 2、print() :打印输出。
    • 3、int() :将一个字符串或数字转换为整型(强转)。
    • 4、range() :输出指定范围内的所有值(前闭后开)。
    • 5、list.append() :向列表末尾添加任意类型元素。
    • 6、sorted() :对所有可迭代类型进行排序。不改变原始序列,返回排序后的新序列。

描述:给定 n 个字符串,请对 n 个字符串按照字典序排列。

数据范围:1 ≤ n ≤ 1000 ,字符串长度满足 1 ≤ len ≤ 100

输入描述:输入第一行为一个正整数n(1≤n≤1000),下面n行为n个字符串(字符串长度≤100),字符串中只含有大小写字母。

输出描述:数据输出n行,输出结果为按照字典序排列的字符串。

示例1

输入:
9
cap
to
cat
card
two
too
up
boat
boot

输出:
boat
boot
cap
card
cat
to
too
two
up

Python3

num = int(input())
temp = []
for ii in range(num):
    temp.append(input())
for jj in sorted(temp):
    print(jj)
         
  • input():获取控制台(任意形式)的输入。输出均为字符串类型。
  • int() :将一个字符串或数字转换为整型(强转)。
  • range() :输出指定范围内的所有值(前闭后开)。
  • list.append() :向列表末尾添加任意类型元素。
  • sorted() :对所有可迭代类型进行排序。不改变原始序列,返回排序后的新序列。
  • print() :打印输出。

知识点详解

1、input():获取控制台(任意形式)的输入。输出均为字符串类型。

【Python】input()函数用法小结

备注:输入可以是任意形式,不限制数据类型。
备注:无论输入是什么,输出都是字符串类型。

print('整型: ', input())
##########################
str1 = input()
print('任意形式: ', str1)
print(type(str1))
'''
123
整型:  123
asd123!@#
任意形式:  asd123!@#
<class 'str'>
'''

2、print() :打印输出。

【Python】print()函数的用法

3、int() :将一个字符串或数字转换为整型(强转)。

【Python】int()用法详解

函数说明:int(x, base=10)
输入参数:

  • x:字符串或数字。
  • base:参数x为(二进制、八进制、十进制、十六进制)数,默认十进制数
    备注:若带参数base,则输入必须是整数,且整数必须以字符串的形式进行输入。如:整数12转化为16进制,int('12', base=16)
    10进制转化为16进制的算法在这里插入图片描述
输入返回值
int()整数 0
int(整数)整数
int(浮点数)浮点数的整数
int(字符串(整数))将字符串类型转换为int类型转换
int(字符串(浮点数))需先转换为float类型,再进行int转换,否则报错。
int('整数', base=16)将输入的16进制整数转换为10进制整数(同理:其余进制)
print(int())                    # 【输出结果】0
print(int(2))                   # 【输出结果】2
print(int(-2.9))                # 【输出结果】-2
print(int('-2'))                # 【输出结果】-2
print(int(float('-2.9')))       # 【输出结果】-2

print(int('20', 16))       		# 【输出结果】32
print(int('0XAA', 16))       	# 【输出结果】170

4、range() :输出指定范围内的所有值(前闭后开)。

函数说明:range(start=0,stop,step=1)
输入参数:

  • start:序列的起始点,默认值0。
  • stop:序列的终止点。
  • step:滑动步长,默认为1。正数表示迭代上升,负数表示迭代下降。

备注:前闭后开[A,B),即可以取到A值,但取不到B值。

# (1)指定stop=9, start默认为0,step默认为1
for i in range(9):
    print('A =', i)
'''
A = 0
A = 1
A = 2
A = 3
A = 4
A = 5
A = 6
A = 7
A = 8
'''
# (2)指定start=2, stop=9, step默认为1
for i in range(2, 9):
    print('B =', i)
'''
B = 2
B = 3
B = 4
B = 5
B = 6
B = 7
B = 8
'''
# (3)指定start=2, stop=9, step=-2
for i in range(9, 2, -2):
    print('C =', i)
'''
C = 9
C = 7
C = 5
C = 3
'''

5、list.append() :向列表末尾添加任意类型元素。

函数说明:list.append( element )
输入参数:

  • element :任何类型的元素。

注意1:只能向列表末尾添加元素,而不是任意位置。
注意2:将列表A添加到列表B,添加的是 “引用地址” 而不是内容本身,故当被列表A发生变化时,添加后的列表B也会同步发生变化。 解决方法:深拷贝copy.deepcopy(list(A))后进行添加。

import copy:导入模块
浅拷贝copy.copy(list(A)):拷贝这个对象的引用地址
深拷贝copy.deepcopy(list(A)):拷贝对象的内容。

# (1)添加任意类型元素
list1 = ['A', 'B', 2]
list1 .append({'key': 1})
print(list1)
############################################################
# (2)列表同步:若添加的列表A发生改变,被添加的列表B同步改变。
list2 = ['A', 'B', 2]
list22 = [1, 3]
list2.append(list22)
print(list2)
list22.append('Z')
print(list2)
############################################################
# (2)深拷贝:若添加的列表A发生改变,被添加的列表B不会改变。
import copy
list3 = ['A', 'B', 2]
list33 = [1, 3]
list3.append(copy.deepcopy(list33))
print(list3)
list33.append('Z')
print(list3)

'''
['A', 'B', 2, {'key': 1}]
['A', 'B', 2, [1, 3]]
['A', 'B', 2, [1, 3, 'Z']]
['A', 'B', 2, [1, 3]]
['A', 'B', 2, [1, 3]]
'''

6、sorted() :对所有可迭代类型进行排序。不改变原始序列,返回排序后的新序列。

函数说明:sorted(iterable, key=None, reverse=False)
输入参数:

  • `iterable:可迭代的对象(如:字典、列表)。
  • key:可迭代类型中某个属性,对指定函数进行排序。默认=None
  • reverse:升序reverse=False(默认)降序reverse=Ture

备注:字符串按照ASCII的大小进行排序。默认先排序大写字母,后排序小写字母。

lst1 = (5, 4, 3, -2, 1)
L1 = sorted(lst1)                       # 【输出结果】[-2, 1, 3, 4, 5]
L2 = sorted(lst1, key=abs)              # 【输出结果】[1, -2, 3, 4, 5]
L3 = sorted(lst1, reverse=True)         # 【输出结果】[5, 4, 3, 1, -2]
print(L1)
print(L2)
print(L3)
###################################################################################
lst2 = ('F', 'D', 'Y', 'e', 'a', 'v')
L4 = sorted(lst2)                       # 【输出结果】['D', 'F', 'Y', 'a', 'e', 'v']
L5 = sorted(lst2, key=str.lower)        # 【输出结果】['a', 'D', 'e', 'F', 'v', 'Y']
print(L4)
print(L5)

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

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

相关文章

《Linux Shell脚本攻略》学习笔记-第十二章

12.1 简介 我们可以通过关闭无用的服务、调整内核参数或是添加新的硬件来改善系统性能。 12.2 识别服务 Linux系统可以同时运行数百个任务&#xff0c;其中可能也会有那么一两个你不需要的守护进程。 有三种可以用于启动守护进程和服务的工具&#xff0c;Linux发行版支持其中任…

LeetCode题解 贪心(一):455 分发饼干;376 摆动序列;53 最大子序和

随想录 && LeetCode 贪心算法 贪心之于算法&#xff0c;内核是一个最优解是由多个局部最优解组合而成的 比如&#xff0c;如何在一个月之内最有效的减肥&#xff0c;子问题就是每周如何减肥&#xff0c;再拆分就是每一天如何减肥 如果能找到令每一天都有效减肥的策…

vue实现购物车思想

vue实现购物车思想一、问题&#xff1a;二、解决步骤一、问题&#xff1a; 实现购物车功能&#xff0c;具体如下 在该界面显示所有物品的列表&#xff0c;点击开菜显示购物车 在该界面只显示订单的列表 如何实现购物车数据的同步呢&#xff1f; 二、解决步骤 具体思路如…

day21-反射枚举

day21_反射&枚举 课程目标 1. 【理解】类加载器 2. 【理解】什么是反射 3. 【掌握】获取Class对象的三种方式 4. 【掌握】反射获取构造方法并创建对象 5. 【掌握】反射获取成员变量并使用 6. 【掌握】反射获取成员方法并使用 7. 【掌握】反射综合案例 8. 【理解】枚举类加…

在Ubuntu上安装 Hadoop 3详细过程(验证+填坑总结)

在Ubuntu上安装 Hadoop 3 前提条件&#xff1a; Python 推荐3.8JDK 推荐1.8 解压安装 sudo tar -zxvf hadoop-3.3.0.tar.gz -C /usr/local cd /usr/local sudo mv hadoop-3.3.0 hadoop sudo chown -R hadoop ./hadoop 配置环境变量 vim ~/.bashrc # hadoop export…

5、数组的创建和操作

目录 一、创建空数组、行向量、列向量 二、访问数组 三、 子数组的赋值&#xff08;Assign&#xff09; 四、其他创建数组的方式 1. 通过冒号创建一维数组 2.通过logspace函数创建一维数组 3.通过linspace函数创建一维数组 在MATLAB中一般使用方括号“[ ]”、逗号“,”、…

Python FastAPI 框架入门(一)【用于后端API快捷开发】

FastAPI 框架&#xff0c;高性能&#xff0c;易于学习&#xff0c;高效编码&#xff0c;生产可用 官方中文文档&#xff1a;FastAPI 框架中文文档 官方介绍&#xff1a; FastAPI 是一个用于构建 API 的现代、快速&#xff08;高性能&#xff09;的 web 框架&#xff0c;使用 Py…

【GD32F427开发板试用】-05-GD32F427移植Coremark

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动&#xff0c;更多开发板试用活动请关注极术社区网站。作者&#xff1a;申小林 如何在GD32F427开发板上移植CoreMARK? 1 下载CoreMARK源码 CoreMark开源的代码可以在Gitbub上自己做下载。 下载地址&#xff1a;ht…

CSS设置元素字体、降级使用字体、引入外部字体

设置元素字体 通过font-family属性&#xff0c;可以设置元素里面的字体样式。 font-family 可以把设置多个字体名称。 降级使用字体 几乎所有浏览器都有支持几种通用字体。比如: monospace&#xff0c;serif和sans-serif&#xff0c;当字体不可用&#xff0c;浏览器可以 “…

通过Docker启动Solace,并在Spring Boot通过JMS整合Solace

1 简介 Solace是一个强大的实时性的事件驱动消息队列。本文将介绍如何在Spring中使用&#xff0c;虽然代码使用的是Spring Boot&#xff0c;但并没有使用相关starter&#xff0c;跟Spring的整合一样&#xff0c;可通用。JMS是通过的消息处理框架&#xff0c;可以深入学习一下&…

02.指针的进阶1.练习题

1.辨析 //数组指针是一种指针&#xff0c;指向数组的指针 //数组指针是指向数组地址的指针 //回调函数是调用函数指针指向函数 EG1:杨氏矩阵 有一个数字矩阵&#xff0c;矩阵的每行从左到右是递增的&#xff0c;矩阵从上到下是递增的&#xff0c;请编写程序在这样的矩阵中…

微服务间通讯负载均衡以及日志

2.通信 HTTP ResthttpJSONRPC远程过程调用二进制 1.使用 RestTemplate RestTemplate restTemplate new RestTemplate(); String forObject restTemplate.getForObject("http://localhot:8888/user", String.class);其负载均衡有问题其无法实现健康检查 2.使用Ri…

新年新气象,跨境电商助推出口再创新高

受疫情等多方面影响&#xff0c;2022年纯棉纱进口量及产量均出现一定幅度地下滑。由于库存增加&#xff0c;消费量下降&#xff0c;供需矛盾也不断加剧。 新年新气象&#xff0c;2023年据预计纯棉纱产量将小幅回升&#xff0c;初步预计将达到535万吨&#xff0c;同比增加5.6%。…

Allegro如何快速打开和关闭层面操作指导

Allegro如何快速打开和关闭层面操作指导 在做PCB设计的时候,打开和关闭某个层面是非常频繁的操作,尤其是丝印等等层面。 Allgeo升级到了172版本的时候,可以将常用的层面添加到Visibility菜单里,就不需要频繁打开颜色管理器打卡和关闭层面了,如下图 具体操作如下 打开颜色…

归纳一下软件测试中「安全测试工具」

大家好啊&#xff0c;我是大田。今天归纳一下安全测试工具&#xff0c;分别用这些工具做哪些工作。自动化测试人员、功能测试人员平常可能用的不多&#xff0c;但是面试时也需要准备&#xff0c;需要知道安全测试工具有什么&#xff0c;还要关注现在有哪些漏洞。本篇先归纳整理…

vue3学习笔记之样式穿透(:deep)及CSS 新特性(:soltted、:gloabl、v-bind、mouldCSS)

文章目录1. scoped的原理2. :deep()3. :slotted()4. :global()5. 动态css&#xff08;v-bind&#xff09;6. css module1. scoped的原理 vue中的 scoped 通过在DOM结构以及css样式上加唯一不重复的标记:data-v-hash的方式&#xff0c;以保证唯一&#xff08;而这个工作是由过P…

如何使用极狐GitLab 机器人大幅提升研发效率

本文来自&#xff1a; 黄松 极狐GitLab 后端工程师 研发效率对互联网/科技类公司来说至关重要&#xff0c;效率高意味着你能用更低的人力、时间成本在市场试错&#xff0c;成功的概率也会更大。 而说到研发效率的常见阻碍&#xff0c;主要有两点&#xff1a; 1. 研发流程中需要…

基础二分查找总结

前言 由于我在学习二分查找的过程中处于会了忘&#xff0c;忘了复习的状态&#xff0c;因此总结一套适合自己记忆的模板。建议先看参考资料[1,2,3]^{[1,2,3]}[1,2,3]&#xff0c;理解二分查找各种细节的由来。 二分查找又死循环了&#xff1f;【基础算法精讲 04】手把手带你撕出…

9656教程总结

9656 世界机器人大会青少年电子信息智能创新大赛官网少儿编程办学经验介绍机器人体验展馆体系课程知乎加盟介绍 知识点汇总 年龄 4-6岁 韩纳机器人主题体验馆 赛事 WRC世界机器人大赛, NOC全国中小学信息技术创新和实践大赛 5岁前:乐高积木,孩子年龄小只需对科特、编程…

事关网站数据安全,你真的了解https与SSL证书之间的关系吗?

虽然根据网上的建站教程&#xff0c;大多数站长都知道要给域名添加一个SSL证书&#xff0c;以此来开启https进而可以获得更好的用户体验以及提高网站的安全性。但是SSL证书为什么能使得网站https&#xff1f;你真的去细究过两者之间的关系吗&#xff1f;本文就来说说https与SSL…