2024-01-13 Daily Challenge
Today I have done leetcode's January LeetCoding Challenge with cpp
.
January LeetCoding Challenge 13
Description
Minimum Number of Steps to Make Two Strings Anagram
You are given two strings of the same length s
and t
. In one step you can choose any character of t
and replace it with another character.
Return the minimum number of steps to make t
an anagram of s
.
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.
Constraints:
1 <= s.length <= 5 * 104
s.length == t.length
s
andt
consist of lowercase English letters only.
Solution
auto speedup = [](){
cin.tie(nullptr);
cout.tie(nullptr);
ios::sync_with_stdio(false);
return 0;
}();
class Solution {
public:
int minSteps(string s, string t) {
vector<int> countS(26);
vector<int> countT(26);
for(auto c : s) {
countS[c - 'a'] += 1;
}
for(auto c : t) {
countT[c - 'a'] += 1;
}
int answer = s.length();
for(int i = 0; i < 26; ++i) {
answer -= min(countS[i], countT[i]);
}
return answer;
}
};
// Accepted
// 63/63 cases passed (32 ms)
// Your runtime beats 98.38 % of cpp submissions
// Your memory usage beats 19.43 % of cpp submissions (17.2 MB)