文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python实现两字符串映射

2024-04-02 19:55

关注
目录


python两字符串映射

题目:

pattern = "abba",s="dog cat cat dog"---->True

pattern = "abba",s="dog cat cat fish"----->False

class Solution:
    def is_pattern_matched(self, pattern:str,s: str) -> bool:
        pattern = list(''.join(pattern))
        s = s.split(" ")
        a = {}
        for i in range(len(pattern)):
            a.update({pattern[i]:s[i]})#update() 方法用于修改/更新当前集合/字典,可以添加新的元素或集合到当前集合中,如果添加的元素在集合中已存在,则该元素只会出现一次,重复的会忽略。
        # a = zip(pattern,s)
        # a = dict(a)
        for j in range(len(pattern)):
            if s[j] != a[pattern[j]]:
                return False
            else:
                return True
 
pattern = "abba"
s = "dog cat cat dog"
S = Solution()
result = S.is_pattern_matched(pattern,s)
print(result)


python字符映射表和字符替换

python中有一个内建函数maketrans()可以对两个字符串进行字符映射,创建出映射表。

结构如下:

str.maketrans(intab,outtab)

当使用该函数时,将会把intab中的字符串对out字符串中的字符进行一一对应。

而使用translate()函数则可以利用映射表字符对指定字符串的字符进行替换。

结构如下:

str.translate(table)

示例:

str1="abcdefghijklmnopqrstuvwxyz"
str2="qwertyuiopasdfghjklzxcvbnm"
table=str.maketrans(str1,str2)
str="sword art online"
print(str.translate(table))#==>lvgkr qkz gfsoft

上面的例子使用了这两个函数写了一个简单的加密程序。其中str1是函数str.maketrans(intab,outtab)中的intab,而str2是str.maketrans(intab,outtab)中的outtab。

不过这种加密方法有一个问题。就是intab与outtab所代表的的字符串的长度必须一致,且各自的字符串中的字符必须唯一,否则解密时容易出错。

示例:

str1="abcdefghijklmnopqrstuvwxyz"
str2="qwertyuiopasdfghjklzxcvbnm"
table1=str.maketrans(str1,str2)
table1_1=str.maketrans(str2,str1)
str="sword art online"
jiami=str.translate(table1)
jiemi=jiami.translate(table1_1)
print(jiami)#==>lvgkr qkz gfsoft
print(jiemi)#==>sword art online

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯