Python 算法姿势之字符串操作篇(一)
【摘要】 冲冲冲!新开一个系列,学习一些 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)