检查一个字符串的字符是否可以在 Python 中交换为另一个字符串
假设我们有两个字符串s和t,我们必须检查是否可以通过交换s的字符来生成t。
因此,如果输入类似于s="worldlloeh"t="helloworld",那么输出将为True,因为我们可以将字符从"worldlloeh"交换为"helloworld"。
为了解决这个问题,我们将按照以下步骤操作-
s_len:=s的大小,t_len:=t的大小
如果s_len与t_len不同,则
返回错误
freq:=将所有字符及其频率存储在s中的映射
对于0到t_len范围内的i,请执行
返回错误
频率[t[i]]:=频率[t[i]]-1
如果freq[t[i]]<0,则
返回真
让我们看看以下实现以获得更好的理解-
示例
from collections import defaultdict def solve(s, t): s_len = len(s) t_len = len(t) if (s_len != t_len): return False freq = defaultdict(int) for char in s : freq[char] += 1 for i in range(t_len) : freq[t[i]] -= 1 if freq[t[i]] < 0: return False return True s = "worldlloeh" t = "helloworld" print(solve(s, t))
输入
"worldlloeh", "helloworld"输出结果
True