虽然这题用排序可以轻松搞定,但是我们可以考虑用二分匹配,在O(n^2)的时间内得到答案。
将两个字符串中每个字母的数目进行统计,然后得到一个有26对结点的二分图,对二分图跑一次最大匹配,当且仅当最大匹配数等于26的时候,输出YES,否则输出NO。
二分版本的代码,运用匈牙利算法实现:
本文介绍了一种使用二分匹配解决特定字符串问题的方法,并通过匈牙利算法实现了该解决方案。通过对两个字符串中字母出现次数的统计,构造了一个二分图,并利用最大匹配算法判断两个字符串是否满足特定条件。
虽然这题用排序可以轻松搞定,但是我们可以考虑用二分匹配,在O(n^2)的时间内得到答案。
将两个字符串中每个字母的数目进行统计,然后得到一个有26对结点的二分图,对二分图跑一次最大匹配,当且仅当最大匹配数等于26的时候,输出YES,否则输出NO。
二分版本的代码,运用匈牙利算法实现:

被折叠的 条评论
为什么被折叠?