【leetcode】1347. Minimum Number of Steps to Make Two Strings Anagram
题目如下:
Given two equal-size strings
s
andt
. In one step you can choose any character oft
and replace it with another character.Return the minimum number of steps to make
t
an anagram ofs
.An Anagram of a string is a string that contains the same characters with a different (or the same) ordering.
Example 1:
Input: s = "bab", t = "aba" Output: 1 Explanation: Replace the first ‘a‘ in t with b, t = "bba" which is anagram of s.Example 2:
Input: s = "leetcode", t = "practice" Output: 5 Explanation: Replace ‘p‘, ‘r‘, ‘a‘, ‘i‘ and ‘c‘ from t with proper characters to make t anagram of s.Example 3:
Input: s = "anagram", t = "mangaar" Output: 0 Explanation: "anagram" and "mangaar" are anagrams.Example 4:
Input: s = "xxyyzz", t = "xxyyzz" Output: 0Example 5:
Input: s = "friend", t = "family" Output: 4Constraints:
1 <= s.length <= 50000
s.length == t.length
s
andt
contain lower-case English letters only.
解题思路:只要求出s和t之间差异的字符的数量即可。
代码如下:
class Solution(object): def minSteps(self, s, t): """ :type s: str :type t: str :rtype: int """ val = [0] * 26; res = 0; for i in s: val[ord(i) - ord(‘a‘)] += 1 for i in t: val[ord(i) - ord(‘a‘)] -= 1 for i in val: if i > 0: res += i return res