Minimum Number of Steps to Make Two Strings Anagram

Given two equal-size strings 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.

Approach

C++

#include <bits/stdc++.h>
using namespace std;

int minSteps(string sstring t)
{

    int freq[26] = {0};

    for (int i = 0i < s.size(); i++)
    {
        freq[s[i] - 'a']++;
        freq[t[i] - 'a']--;
    }
    int ans = 0;
    for (int i = 0i < 26i++)
    {
        if (freq[i] < 0)
        {
            ans += abs(freq[i]);
        }
    }
    return ans;
}

int main()
{
    string s = "bab"t = "aba";

    cout << minSteps(st<< "\n";

    return 0;
}


No comments:

Post a Comment