查看: 1282|回复: 0
收起左侧

[资料分享] 同字母移位词

Lihoon 2020-4-25 11:01:00 | 显示全部楼层 |阅读模式
邀请回答

马上注册,享受更多特权

您需要 登录 才可以下载或查看,没有帐号?立即注册   

x
遇到两个字符串,判断两个字符串是不是字母相同,但是字母位置不同,可以用下面的两种方法来判断。
  1. # Created Date:2020/04/23
  2. # @Author:Lihoon

  3. class Solution:
  4.        
  5.         # the first method
  6.         def is_anagram_1(self, s:'str', t:'str') -> 'bool':
  7.                 if len(s) != len(t):
  8.                         return False
  9.                
  10.                 # 将字符串转换为列表
  11.                 sList = list(s)
  12.                 tList = list(t)
  13.                
  14.                 # 对列表进行排序
  15.                 sList.sort()
  16.                 tList.sort()
  17.                
  18.                 # 判断两个列表是否一致
  19.                 for i in range(len(s)):
  20.                         if s[i] == t[i]:
  21.                                 continue
  22.                         else:
  23.                                 return False
  24.                 return True
  25.                
  26.         # the second method
  27.         def is_anagram_2(self, s: 'str', t: 'str') -> 'bool':
  28.                 if len(s) != len(t):
  29.                         return False
  30.                
  31.                 # 将第一个字符串转换为列表
  32.                 sList = list(s)
  33.                 for word in t:
  34.                         try:
  35.                                 # 依次删除列表中存在的字母
  36.                                 sList.remove(word)
  37.                        
  38.                         # 如果没找到对应字母的话则说明两个字符串不同
  39.                         except ValueError as e:
  40.                                 return False
  41.                 return True
  42.                
  43. print("请分别输入两个单词,代码可以判断两个单词是不是同字母移位词!")
  44. s = str(input("请输入第一个单词:"))
  45. t = str(input("请输入第二个单词:"))

  46. func = Solution()
  47. res_1 = func.is_anagram_1(s, t)
  48. res_2 = func.is_anagram_2(s, t)
  49. print('输入的两个单词是否为同字母移位词?\t结果:{}'.format(res_1))
  50. print('输入的两个单词是否为同字母移位词?\t结果:{}'.format(res_2))
复制代码
如果两个字符串内容相同,但是字符顺序不同,则返回True,否则,返回False。这个方法也可以应用在判断两个变量中的离散值是否相等,如A寄存器与B寄存器的位状态是否相同。




上一篇:回文字符串验证
下一篇:查找子字符串

已有 0 人打赏作者

回复 邀请回答送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册   

本版积分规则

有技术问题,就上汇川技术社区

INOVANCE汇川技术 公众号

扫码下载掌上汇川APP

全国服务热线:8:30-17:30

4000-300124

苏州地址:江苏省苏州市吴中区越溪友翔路16号

深圳地址:深圳市龙华新区观澜街道高新技术产业园汇川技术总部大厦

Copyright © 2003-2100 汇川技术 Powered by Discuz! X3.4 ( 苏ICP备12002088号 )
快速回复 返回列表 返回顶部