代码编织梦想

python蓝桥杯备考——字符串拼接

一、问题解释:

max = str(i) + max等同于max = int(''.join(nums[::-1]))

法1:

 nums = sorted(nums)
 for i in nums:
        max = str(i) + max
        min = min + str(i)

法2:

nums = sorted(nums)
max = int(''.join(nums[::-1]))
min = int(''.join(nums))

以下是含义及用法:

(1)sorted(nums):这行代码使用 sorted() 函数对列表 nums 进行排序,得到一个新的排序后的列表。排序后的列表不会改变原始列表 nums。

(2)for i in nums::这是一个循环语句,用于遍历排序后的列表 nums 中的每个元素。

(3)max = str(i) + max:这行代码将当前元素 i 转换为字符串,并将其与 max 变量进行拼接。由于每次循环都将当前元素放在拼接结果的最左侧,所以最终得到的 max 字符串是 nums 列表中元素的逆序排列。

(4)min = min + str(i):这行代码将当前元素 i 转换为字符串,并将其与 min 变量进行拼接。由于每次循环都将当前元素放在拼接结果的最右侧,所以最终得到的 min 字符串是 nums 列表中元素的顺序排列。

(5)nums[::-1]:这是一个切片操作,用于将排序后的列表 nums 进行逆序排列。python蓝桥杯备考——常见切片操作

(6)‘’.join(nums[::-1]):这行代码使用空字符串 ‘’ 将逆序排列的列表中的元素连接为一个字符串。‘’.join() 函数将列表中的元素按照指定的分隔符(这里是空字符串)进行连接。

(7)int(‘’.join(nums[::-1])):这行代码将连接后的字符串转换为整数,赋值给变量 max。这样,我们得到了排序后的列表中元素的逆序排列的整数。

(8)int(‘’.join(nums)):这行代码将排序后的列表中的元素连接为一个字符串,然后将字符串转换为整数,赋值给变量 min。这样,我们得到了排序后的列表中元素的顺序排列的整数。

相同之处:

这两种方法在功能上是相同的,都是将列表 nums 进行排序,并将排序后的元素连接为字符串,然后将字符串转换为整数。
两种方式的结果是相同的,都能得到排序后的列表中元素的逆序排列的整数。选择哪种方式取决于个人偏好和代码风格。
在运行时间方面,两种方式的差异应该是非常小的,因为它们的逻辑和计算复杂度是相似的。无论是使用 sorted(nums) 进行排序,还是使用切片操作和字符串连接进行逆序排列,最后将字符串转换为整数,它们的时间复杂度都是线性的,取决于列表中元素的数量。

不同之处:区别在于具体的实现方式和代码风格

nums = sorted(nums):这种方式使用了 sorted() 函数对列表 nums 进行排序,得到一个新的排序后的列表。这种方式可以直接修改列表 nums 的顺序,但也会创建一个新的列表对象。
max = int(‘’.join(nums[::-1])):这种方式使用了切片操作 nums[::-1] 将列表 nums 中的元素逆序排列,并使用空字符串 ‘’ 进行连接,得到一个逆序排列的字符串。然后,使用 int() 函数将该字符串转换为整数,赋值给变量 max。这种方式没有修改原始列表 nums 的顺序,而是通过切片和字符串连接操作得到逆序排列的整数。

二、练习

题目:数字黑洞

时间限制:
1s
内存限制:
128MB
题目描述:
任意一个四位数,只要它们各个位上的数字是不全相同的,就有这样的规律:
1、将组成该四位数的四个数字由大到小排列,形成由这四个数字构成的最大的四位数;
2、将组成该四位数的四个数字由小到大排列,形成由这四个数字构成的最小的四位数(如果四个数中含有0,则得到的数不足四位);
3、求两个数的差,得到一个新的四位数(高位零保留)。
重复以上过程,最后一定会得到的结果是6174。
比如:4312 3087 8352 6174,经过三次变换,得到6174
输入描述:
一个四位整数,输入保证四位数字不全相同
输出描述:
一个整数,表示这个数字经过多少次变换能得到6174
样例输入:
4312
样例输出:
3

答案:

nums = [i for i in input()]
count = 0
while nums != '6174':
    count += 1
    nums = sorted(nums)
    max = ''
    min = ''
    for i in nums:
        max = str(i) + max
        min = min + str(i)
    max = int(max)
    min = int(min)
    nums =str(max - min)
print(count)
nums = [i for i in input()]
count = 0
while nums != '6174':
    count += 1
    max = ''
    min = ''
    nums = sorted(nums)
    max = int(''.join(nums[::-1]))
    min = int(''.join(nums))
    nums =str(int(max) - int(min))
print(count)
num = int(input())
count = 0
while num != 6174:
    nums = []
    count += 1
    #将四位数分开并排序
    for i in str(num):
        nums.append(int(i))
    nums = sorted(nums)
    #生成四位数能组成的最大值最小值
    max = ''
    min = ''
    for i in nums:
        max = str(i)+max  #新学的方法
        min = min+str(i)
    #求max和min的差
    max = int(max)
    min = int(min)
    num = max - min
#输出
print(count)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/laowang357/article/details/135232883

python字符串连接操作-Python字符串拼接-爱代码爱编程

问题描述 在解析文件的时候,需要将解析出来的数据字符串拼接成新的字符串。正常来说这个,过程是一个循环,不断拼接字符串。如果这个过程循环的次数不多的话,不同的方式拼接方式差别不大。如果循环次数超过10000次,你会发现明显的慢了。错误初始代码(简化版)如下: class Processor(object): def __init__(self): self.

python 一行太长_代码又长又复杂?总结Python一行代码就能干的事儿,不能更简单了...-爱代码爱编程

Python语言因为独特的设计思想比起其他语言来说在表现力上有很大的优势。 今天我们通过几个一行Python代码的例子来验证Python的强大表现能力。 通过对这些例子的解读,我们可以更好的学习和了解Python语言。 一行代码对字符串倒序排列 切片的参数格式: [start_index: stop_index: step] 如果不填写切片起止位置参数,那

Python 循环拼接字符串_如何大规模拼接字符串?(含中奖名单)-爱代码爱编程

月初公众号上给大家送了10本书,有5本是用抽奖助手抽的,大家可以在抽奖助手上查看。 另外5本是在赞赏区抽的,我写了个随机函数随机从赞赏的63人中抽取的,这5个人的名单如下: .   微笑心情真好  方木南土川   李超  念桥边红药 请这5位同学稍后加我微信:build_wheels,告诉我地址和联系方式,截止到今

Python 循环拼接字符串_Python入门-爱代码爱编程

变量 字符串字符串拼接 使用+,将两个字符串拼接成一个字符串,打印。 格式化输出 使用%s可以在字符串的对应位置,填入特定的值。 数值 容器 列表(List) python中用[]表示列表。 列表的索引是从0开始的。 增加元素向列表中增加一个元素,使用append添加元素,会将新增

python循环拼接字符串_别在Python中使用“+”来连接字符串了,还有更好用的方法!...-爱代码爱编程

每天学习一点Python使用技巧,今天来教大家如何选择“+”和join()方法来连接字符串。 在我开始使用Python时,+ 就像许多编程语言(如Java)一样,使用加号运算符连接字符串非常直观且容易。 但是,很快我意识到许多开发人员似乎喜欢使用该 .join()方法而不是 + 。在本文中,我将介绍这两种方法之间的区别以及为什么不应该使用 + 。

蓝桥杯 拼接(DFS)-爱代码爱编程

右侧的木块经过旋转后在拼接,说明其必然是对称的,所以寻找切割线时只在一边找,另一边对称即可(下图来源拼接-CSDN博客) #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=10; bool vis[N][N]; ll res;

简单介绍python列表元素拼接成字符串的4种方法-爱代码爱编程

本文主要介绍了python列表元素拼接成字符串的4种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 前言 我们在分析列表数据时,常常需要对列表数据进行输出或多列表关联拼接。直接使用列表,列表中的各元素以逗号分隔,每个元素包含引号。如何连接列表中的元素为一个字符串呢? 文章主要介

c/c++蓝桥杯之整数拼接(较难)_一个数组a1,a2,…,an,如果两个元素ai,aj,i≠j,满足|ai aj|≤k,那么我们可以用-爱代码爱编程

问题描述:给定一个长度为n的数组,A1,A2,...,An你可以从中选出两个数Ai和Aj(i≠j),然后将Ai和Aj一前一后拼成一个新的整数。例如12和345可以拼成12345或34512。注意交换Ai和Aj的顺序总是被视为两种拼法,即便Ai=Aj。请你计算有多少种拼法,满足拼出的整数就是k的倍数。 输入格式: 第一行包含两个整数n和k。 第二行包括

蓝桥杯算法心得——拼数(排列型回溯dfs)_拼数 蓝桥-爱代码爱编程

大家好,我是晴天学长,排列型的dfs,在一些需要暴搜的题中很中很重要,需要的小伙伴可以关注支持一下哦!后续会继续更新的。💪💪💪 1) .拼数 2) .算法思路 超级递归 1.遍历数组,选中为true 有三