page contents

python基础编程100例:第33期-亲密字符串

本文讲述了python基础编程100例:第33期-亲密字符串!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

attachments-2022-03-0rjIR2la6233e72498212.png

本文讲述了python基础编程100例:第33期-亲密字符串!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

第33期-亲密字符串

1 问题描述

有两个字符串,A和B,如果A字符串内部交换两个位置的字符就能够让A和B相等,就认为两个字符串是亲密字符串

一共有两种情况:

一是两个字符串完全相等。

在这种情况下,我们需要在一个字符串中寻找两个相同的字母的索引,交换这两个字母的位置,这两个字符串还是相等的。

二是这两个字符串不相等的情况。

首先,比较这两个字符串,找出这两个字符串不相等的字母的位置。然后统计字母不一样的数量是否为2(只需要交换两个字母的位置),如果大于2则不是亲密字符串。找到不一样的字母以后,在字符串A中交换这两个字母的位置,然后比较是否相等,相等则是亲密字符串

输入两个字符串,判断他们是不是亲密字符串!


2 解题思路

用input函数请用户输入两个字符串

需要判断两者长度是否相等,长度不等一定不是亲密字符串

若两者相等,只需要字符串中有两个相同的元素便可以了

可以找到两个不相等的字符,将两者交换,若交换后两字符串相等,则是亲密字符串


3 解题方法

A = list(str(input('请输入字符串A:')))

B = list(str(input('请输入字符串B:')))

if len(A)!=len(B):

    print('两者不是亲密字符串')

elif A == B and len(list(set(A)))<len(A):

    print('两者是亲密字符串')

else:

    n=0

    for i in range(len(A)):

        for j in range(len(B)):

            if n==0 and i!=j and A[i]!=B[i] and A[j]!=B[j]:

                A[i],A[j]=A[j],A[i]

                n+=1

    if A==B:

        print('两者是亲密字符串')

    else:

        print('两者不是亲密字符串')

第1-2行: 定义变量A与B,用input函数使用户输入字符串,str函数将其转换为字符串类型,并用list函数转化为列表

第3-4行: 若两者长度不相等,必定不是亲密字符串

第5-6行: 若两者完全一样且字符串内有重复元素,打印其是亲密字符串

第7-10行: 若上面两种情况均不满足,则用for函数遍历字符串中的元素,选择两者不相同的地方并进行交换,n用来保证只交换一次

第11-12行: 判断两着是否相同,若是则两者是亲密字符串

第13-14行: 若不相同,则打印两者不是亲密字符串


set() 函数

set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。

语法:

set([iterable])

参数说明:

iterable -- 可迭代对象对象;


代码运行结果为:

attachments-2022-03-YQZabdSB6233e651f3530.png


小思考

else:

    n=0

    for i in range(len(A)):

        for j in range(len(B)):

            if n==0 and i!=j and A[i]!=B[i] and A[j]!=B[j]:

                A[i],A[j]=A[j],A[i]

                n+=1

')

这段语句中,n的作用很不明显,你能举例说明去掉n后判断不准的情况吗

更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-yKkedPyY6291906510254.jpeg

  • 发表于 2022-03-18 09:58
  • 阅读 ( 709 )
  • 分类:Python开发

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1474 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章