在Python中确定两个字符串是否相似的程序

在Python中确定两个字符串是否相似的程序

假设我们有两个字符串s和t,我们必须检查s和t是否相似。我们可以说,如果我们可以使用以下操作之一从一个字符串获得另一个字符串,则两个字符串是相似的−

  • 交换任意两个现有字符。(例如,将abcde交换为aecdb)

  • 将一个现有字符的每个出现更改为另一个现有字符,并对其他字符执行相同操作。(例如,aacabb->bbcbaa(这里将所有a转换为b,并反之亦然))

我们可以在任一字符串上多次使用操作。

因此,如果输入为s =“zxyyyx”,t =“xyyzzz”,则输出将为true,因为我们可以通过3个操作从s得到t。 (“zxyyyx” ->“zxxyyy”),“zxxyyy” – >“yxxzzz”,以及(“yxxzzz” ->“ xyyzzz”)。

为了解决这个问题,我们将采取以下步骤−

  • 如果s和t具有任何不常见字符,那么
    • return False
  • a:= s中所有字符的频率值列表

  • b:= t中所有字符的频率值列表

  • 对列表a进行排序

  • 对列表b进行排序

  • 如果a与b不同,则

    • return False
  • return True

例子

让我们看以下实现以更好地理解−

 from collections import Counter
 def solve(s,t):
     if set(s)! = set(t):
         return False
     a = list(Counter(s).values())
     b = list(Counter(t).values())
     a.sort()
     b.sort()
     if a! = b:
         return False
     return True

s ="zxyyyx"
t =“xyyzzz”
print(solve(s,t)) 

输入

 "zxyyyx",“xyyzzz”

输出

 True 

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程