Python 算法姿势之字符串操作篇(一)

举报
xianyuplus 发表于 2021/03/20 00:40:02 2021/03/20
【摘要】 冲冲冲!新开一个系列,学习一些 Python 姿势1、 确定字符串是否包含唯一字符编写一个使其可以识别传入的 string 字符串的字符是否是唯一的,即有没有重复的字符如果传入字符串的字符是唯一的,则返回 True;如果传入字符串的字符是有重复的,则返回 False;如果传入的字符串为 None,也返回 False。class UniqueChars(object): def has_...

冲冲冲!新开一个系列,学习一些 Python 姿势

1、 确定字符串是否包含唯一字符

编写一个使其可以识别传入的 string 字符串的字符是否是唯一的,即有没有重复的字符

  • 如果传入字符串的字符是唯一的,则返回 True
  • 如果传入字符串的字符是有重复的,则返回 False
  • 如果传入的字符串为 None,也返回 False
class UniqueChars(object):
    def has_unique_chars(self, string):
        if string is None:
            return False
        return len(set(string)) == len(string)

2、确定字符串是否是另一个的排列

实现一个算法来识别一个字符串 str2 是否是另一个字符串 str1 的排列,即如果将 str1 的字符拆分开,重新排列后再拼接起来,能够得到 str2 ,那么就说字符串 str2 是字符串 str1 的排列。

  • 如果 str2 字符串是 str1 字符串的排列,则返回 True
  • 如果 str2 字符串不是 str1 字符串的排列,则返回 False
  • 如果传入的字符串有 None,或者有空字符串,则返回 False
class Permutations(object):
    def is_permutation(self, str1, str2):
        if str1 is None or str2 is None:
            return False
        return sorted(str1) == sorted(str2)

3、确定字符串是否是另一个的旋转

实现一个算法来识别一个字符串 s2 是否是另一个字符串 s1 的旋转。如果将 s1 从某个位置断开,拆分成两个字符串(可能有一个为空字符串),再将这两个字符串调换顺序后拼接起来,能够得到 s2 ,那么说字符串 s2 是字符串 s1 的旋转。

  • 如果 s2 字符串是 s1 字符串的旋转,则返回 True
  • 如果 s2 字符串不是 s1 字符串的旋转,则返回 False
  • 如果传入的字符串有一个是 None 或者空字符,但另外一个不是时,也返回 False
class Rotation(object):
    def is_substring(self, s1, s2):
        return s1 in s2
    def is_rotation(self, s1, s2):
        if s1 is None or s2 is None:
            return False
        if len(s1) != len(s2):
            return False
        return self.is_substring(s1, s2 + s2)
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。