找到所有互逆的字符串

描述

定义函数rev_pair(slist),其参数是一个列表,并且列表中所有元素都是字符串。这个函数返回另一个列表,返回的列表的所有元素都是由两个来自slist的字符串组成的元组,并且互为反转。在slist中先出现的字符串在这个元组的左边,后出现的在右边。左边的字符串在slist中先出现的元组,在返回值的列表中先出现,相同的字符串只在返回值中出现一次。

所有的字符串中的字符都是大小写英文字母或者0到9。

输入

一个列表,使用Python通常的格式。

输出

直接print rev_pair的返回值。

样例输入

['abc', 'ded', 'cba', 'ffa']

样例输出

[('abc', 'cba'), ('ded', 'ded')]
# endcoding : UTF-8
"""
@author = 寻找任大侠
@email = renjx@stu.pku.edu.cn
@create_time = 2021/12/11 15:00
"""


# 反转字符
def reverse(s):
    r = ""
    for i in range(len(s)):
        r += (s[len(s) - i - 1])
    return r


def rev_pair(slist):
    res = []
    # 去重,防止重复添加
    res_set = set()
    for i in slist:
        j = reverse(i)
        if j in slist and j not in res_set:
            res.append((i, j))
            # 字符和反转字符不可重复
            res_set.add(i)
            res_set.add(j)
    return res

slist = []
exec('slist=' + input())
print(rev_pair(slist))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Knight_Ren

资源不易,打赏随意

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值