字符串排序-第13届蓝桥杯省赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第82讲。

字符串排序,本题是2022年4月17日举办的第13届蓝桥杯青少组Python编程省赛真题编程部分第2题,13届一共举办了两次省赛,这是第一次省赛。题目要求将输入的多个英文单词按字典顺序排序输出。

先来看看题目的要求吧。

一.题目说明

编程实现:

输入多个英文单词(单词都为小写字母),然后按字典顺序排序输出。

单词首字母相同时就比较第二个字母,以此类推。

输入描述:

输入多个由小写仪母组成的英文单词,单词之间以一个英文逗号隔开。

输出描述:

按字典顺序排序输出,且单词之间以一个英文逗号隔开

输入样例:

python, hello, world

输出样例:

hello, python, world

二.思路分析

这是一道简单题,涉及的知识点包括输入输出,排序函数和字符串处理等。

很多同学看到字典序,不知道是什么意思,然后就卡住了,有点可惜了。

字典序到底是什么呢?

字典序,也称为词典序或字母顺序,是指按照字母或字符的自然顺序进行排列的方法。这种排序方式广泛应用于各种场景,比如字符串排序、数据结构排序和文件目录排序等。

在计算机中,字符通常使用ASCII码或Unicode码进行编码,因此字典序的比较实际上是基于这些编码值的比较。

具体的排序规则有如下3条:

1. 首字符优先

在比较两个字符串时,首先比较它们的第一个字符。如果第一个字符不同,则按照字符编码的顺序确定两个字符串的先后。

2. 逐字符比较

如果两个字符串的第一个字符相同,则继续比较后面的字符,直到找到不同的字符为止。然后根据该字符的编码值确定两个字符串的排序顺序。

3. 长度考虑

如果两个字符串在某个位置之前的所有字符都相同,但一个字符串是另一个字符串的前缀,则较短的字符串排在前面,例如,“apple”会排在“apples”前面。

对于英文单词而言,是按照ASCII码进行比较排序的,ACII码表如下:

图片

本题中输入的三个单词为python, hello, world,它们的首字母不同,所以只需要比较一次,根据上图中的ASCII码表,h < p < w,所以排序结果为hello, python, world。

明白了什么是字典序,接下来需要考虑的是如何在编程中实现排序,难道还要自己编写代码?

完全不需要,由于排序是一个常见操作,因此Python内置了排序函数,有如下两个:

  • sort()方法

  • sorted()函数

二者都可以用于排序,但是在使用上有很大的区别,主要有如下3点:

1. 调用方式

sort()是列表对象的方法,必须由列表对象调用,如果是其它可迭代对象,需要转成列表再排序。

而sorted()是一个内置函数,可以对任何可迭代对象进行排序,比如列表、元组、字符串等。

2. 对数据的影响

sort() 是原地排序,也就是说,该方法会对原列表进行修改,不返回新的列表。

而orted()返回一个新的列表,原可迭代对象不受影响,保持不变。

3. 返回值

sort()方法返回值为 None,而sorted()函数返回排序后的新列表。

思路有了,接下来,我们就进入具体的编程实现环节。

三.编程实现

根据上面的思路分析,我们分别使用两种方法编写程序如下:

  • sort()方法

  • sorted()函数

1. sort()方法

使用sort()方法的代码如下:

图片

2. sorted()函数

使用sorted()函数的代码如下:

图片

至此,整个程序就全部完成了,你可以输入不同的数据来测试效果啦。

四.总结与思考

本题代码在3行左右,涉及到的知识点包括:

  • 输入输出;

  • 排序函数;

  • 字符串相关函数;

本题代码少,非常简单,基本上也属于送分题,关键有两个,一是要深入理解什么是字典序,其排序规则是怎样的,而是熟练掌握字符串的相关函数。

有些同学因为不知道什么是字典序而放弃了这道题吗,是不是挺遗憾的。

所以说,我们在学习任何知识的时候,一定要注意基本概念的理解,要做到全面深入,而不是一知半解。

这里再补充两个说明,一是关于方法和函数的说法,在编程中,如果某个函数是属于对象的,通常称之为方法,其本质上仍然是函数。

二是Unicode和ASCII的区别和联系。

ASCII是一个包含128个字符的字符编码标准。它主要包括英文字母、数字和一些特殊符号,ASCII 码是最早的字符编码标准,只涵盖了有限的字符集。

Unicode是一个更大的字符编码标准,目的是包含全球范围内的所有字符。Unicode 包括了各种语言(包括中文)的字符、符号、标点以及其他特殊字符,总计支持数十万甚至更多不同字符。

Unicode 是 ASCII 的超集,包含了 ASCII 码中的字符,同时还包含了更多字符,让我们能够表示各种语言和符号。

超平老师给你留一道思考题,如果要按照字典序对输入的多个单词进行降序排序,该如何实现呢?

你还有什么好的想法和创意吗,也非常欢迎和超平老师分享探讨。

如果你觉得文章对你有帮助,别忘了点赞和转发,予人玫瑰,手有余香😄

需要源码的,可以添加本人微信。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云域名解析

阿里云域名控制台&#xff1a;https://dc.console.aliyun.com/next/index#/domain-list/all

table组件,前端如何使用table组件,打印数组数据,后端传输的数据应该如何打印

一、如何使用table&#xff0c;将数组数据打印出来 后端传来的数据&#xff0c;很大概率是一个List数组&#xff0c;我们必须用一个table组件&#xff0c;来打印这些数据。 table标签的介绍 在HTML中&#xff0c;table是常用组件之一&#xff0c;主要用来打印数组信息。 它的…

互联网应用主流框架整合之SpringMVC基础组件开发

多种传参方式 在前一篇文章互联网应用主流框架整合之SpringMVC初始化及各组件工作原理中讨论了最简单的参数传递&#xff0c;而实际情况要复杂的多&#xff0c;比如REST风格&#xff0c;它往往会将参数写入请求路径中&#xff0c;而不是以HTTP请求参数传递&#xff1b;比如查询…

[AI资讯·0612] AI测试高考物理题,最高准确率100%,OpenAI与苹果合作,将ChatGPT融入系统中,大模型在物理领域应用潜力显现

AI资讯 国产AI大战高考物理&#xff0c;第1题全对&#xff0c;第2题开始放飞终于放大招了&#xff0c;2024WWDC&#xff0c;苹果开启AI反击战苹果一夜重塑iPhone&#xff01;GPT-4o加持Siri&#xff0c;AI深入所有APPOpenAI确认苹果集成ChatGPT 还任命了两位新高管GPT-4搞不定…

大数据可视化电子沙盘:前端技术的全新演绎

随着大数据时代的到来&#xff0c;数据可视化成为了一个重要的技术趋势。数据可视化不仅可以让复杂的数据变得更加直观易懂&#xff0c;还能帮助我们更好地分析和理解数据。在本文中&#xff0c;我们将深入探讨一种基于HTML/CSS/Echarts等技术的大数据可视化电子沙盘&#xff0…

多层tablayout+ViewPager,NestedScrollView+ViewPager+RecyclerView,嵌套吸顶滑动冲突

先看实现的UI效果 其实就是仿BOSS的页面效果&#xff0c;第二层tab下的viewpager滑到最右边再右滑&#xff0c;就操作第一层viewpager滑动。页面上滑时把第一层tab和vp里的banner都推出界面&#xff0c;让第二层tab吸顶。 滑上去第二个tab块卡在顶部&#xff0c;如图 我混乱…

Unity 从0开始编写一个技能编辑器_02_Buff系统的生命周期

工作也有一年了&#xff0c;对技能编辑器也有了一些自己的看法&#xff0c;从刚接触时的惊讶&#xff0c;到大量工作时觉得有一些设计的冗余&#xff0c;在到特殊需求的修改&#xff0c;运行效率低时的优化&#xff0c;技能编辑器在我眼中已经不再是神圣不可攀的存在的&#xf…

redis 06 集群

1.节点&#xff0c;这里是把节点加到集群中的操作&#xff0c;跟主从结构不同 这里是在服务端使用命令&#xff1a; 例子&#xff1a; 2.启动节点 节点服务器 首先&#xff0c;先是服务器节点自身有一个属性来判断是不是可以使用节点功能 一般加入集群中的节点还是用r…

VMware安装ubuntu22.4虚拟机超详细图文教程

一 、下载镜像 下载地址&#xff1a;Index of /ubuntu-releases/22.04.4/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 二、创建虚拟机 打开VMware点击左上角文件&#xff0c;创建新的虚拟机&#xff0c;打开后如下图&#xff1a; 下一步&#xff0c;镜像文件就是…

使用代理IP常见问题有哪些?

代理IP在互联网数据收集和业务开展中发挥着重要作用&#xff0c;它充当用户客户端和网站服务器之间的“屏障”&#xff0c;可以保护用户的真实IP地址&#xff0c;并允许用户通过不同的IP地址进行操作。然而&#xff0c;在使用代理IP的过程中&#xff0c;用户经常会遇到一些问题…

弃用Docker Desktop:在WSL2中玩转Docker之Docker Engine 部署与WSL入门

Docker技术概论 在WSL2中玩转Docker之Docker Engine部署 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://bl…

RabbitMQ系列-rabbitmq无法重新加入集群,启动失败的问题

当前存在3个节点&#xff1a;rabbitmq5672、rabbitmq5673、rabbitmq5674 当rabbitmq5673节点掉线之后&#xff0c;重启失败 重启的时候5672节点报错如下&#xff1a; 解决方案 在集群中取消失败节点 rabbitmqctl forget_cluster_node rabbitrabbitmq5673删除失败节点5673的…

【iOS】KVC相关总结

目录 1. 什么是KVC&#xff1f;2. 访问对象属性常用方法声明基础使用KeyPath路径多值操作 3. 访问集合属性4. 集合运算符自定义集合运算符 5. 非对象值处理访问基本数据类型访问结构体 6. 属性验证7. 设值和取值原理基本的Getter搜索模式基本的Setter搜索模式NSMutableArray搜索…

【LeetCode滑动窗口算法】长度最小的子数组 难度:中等

我们先看一下题目描述&#xff1a; 解法一&#xff1a;暴力枚举 时间复杂度&#xff1a;o(n^3) class Solution { public:int minSubArrayLen(int target, vector<int>& nums){int i 0, j 0;vector<int> v;for (;i < nums.size();i){int sum nums[i];fo…

CLIP-guided Prototype Modulating for Few-shot Action Recognition

标题&#xff1a;基于CLIP引导的原型调制用于少样本动作识别 源文链接&#xff1a;CLIP-guided Prototype Modulating for Few-shot Action Recognition | International Journal of Computer Vision (springer.com)https://link.springer.com/article/10.1007/s11263-023-019…

wireshark查看流量图

点击 菜单中的 统计 , 选择 IO 图表 项 勾选下面选项..

java.nio.charset.UnmappableCharacterException

问题 java.lang.IllegalArgumentException: java.nio.charset.UnmappableCharacterException: Input length 1 解释为编码转换有问题 问题错在位置 非汉字存在 打包的时候就会报异常

Vue基本使用-02

上节我们讲了什么是mvvm模型&#xff0c;以及我们vue的一些常用指令&#xff0c;今天给大家讲一下vue的基本使用&#xff0c;在将之前我们需要重点讲解我们的一个指令&#xff0c;v-model指令 v-model v-model 可以在组件上使用以实现双向绑定,什么是双向绑定呢?意思就是当我们…

2024年第三届数据统计与分析竞赛(B题)数学建模完整思路+完整代码全解全析

你是否在寻找数学建模比赛的突破点&#xff1f;数学建模进阶思路&#xff01; 详细请查 作为经验丰富的数学建模团队&#xff0c;我们将为你带来2024年第三届数据统计与分析竞赛&#xff08;B题&#xff09;的全面解析。这个解决方案包不仅包括完整的代码实现&#xff0c;还有…

分享一份 .NET Core 简单的自带日志系统配置,平时做一些测试或个人代码研究,用它就可以了

前言 实际上&#xff0c;.NET Core 内部也内置了一套日志系统&#xff0c;它是一个轻量级的日志框架&#xff0c;用于记录应用程序的日志信息。 它提供了 ILogger 接口和 ILoggerProvider 接口&#xff0c;以及一组内置的日志提供程序&#xff08;如 Console、Debug、EventSo…