|
邀请回答
马上注册,享受更多特权
您需要 登录 才可以下载或查看,没有帐号?立即注册 ![](source/plugin/zhanmishu_wechat/template/static/img/wechat_login.png)
x
遇到两个字符串,判断两个字符串是不是字母相同,但是字母位置不同,可以用下面的两种方法来判断。
- # Created Date:2020/04/23
- # @Author:Lihoon
- class Solution:
-
- # the first method
- def is_anagram_1(self, s:'str', t:'str') -> 'bool':
- if len(s) != len(t):
- return False
-
- # 将字符串转换为列表
- sList = list(s)
- tList = list(t)
-
- # 对列表进行排序
- sList.sort()
- tList.sort()
-
- # 判断两个列表是否一致
- for i in range(len(s)):
- if s[i] == t[i]:
- continue
- else:
- return False
- return True
-
- # the second method
- def is_anagram_2(self, s: 'str', t: 'str') -> 'bool':
- if len(s) != len(t):
- return False
-
- # 将第一个字符串转换为列表
- sList = list(s)
- for word in t:
- try:
- # 依次删除列表中存在的字母
- sList.remove(word)
-
- # 如果没找到对应字母的话则说明两个字符串不同
- except ValueError as e:
- return False
- return True
-
- print("请分别输入两个单词,代码可以判断两个单词是不是同字母移位词!")
- s = str(input("请输入第一个单词:"))
- t = str(input("请输入第二个单词:"))
- func = Solution()
- res_1 = func.is_anagram_1(s, t)
- res_2 = func.is_anagram_2(s, t)
- print('输入的两个单词是否为同字母移位词?\t结果:{}'.format(res_1))
- print('输入的两个单词是否为同字母移位词?\t结果:{}'.format(res_2))
复制代码 如果两个字符串内容相同,但是字符顺序不同,则返回True,否则,返回False。这个方法也可以应用在判断两个变量中的离散值是否相等,如A寄存器与B寄存器的位状态是否相同。
|
上一篇: 回文字符串验证下一篇: 查找子字符串
|