From 47c00f892d9c6817d7506f220f4deb76a3f8cfa8 Mon Sep 17 00:00:00 2001 From: NidhiSingh5 <98218375+NidhiSingh5@users.noreply.github.com> Date: Wed, 19 Oct 2022 14:47:50 +0530 Subject: [PATCH] Create Transform One String to Another using Minimum Number of Given Operation --- ...er using Minimum Number of Given Operation | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 C++/Transform One String to Another using Minimum Number of Given Operation diff --git a/C++/Transform One String to Another using Minimum Number of Given Operation b/C++/Transform One String to Another using Minimum Number of Given Operation new file mode 100644 index 0000000..427ce28 --- /dev/null +++ b/C++/Transform One String to Another using Minimum Number of Given Operation @@ -0,0 +1,51 @@ +// C++ implementation +#include +using namespace std; + + +int minOps(string& S1, string& S2) +{ + int m = S1.length(), n = S2.length(); + + + if (n != m) + return -1; + int count[256]; + memset(count, 0, sizeof(count)); + + for (int i = 0; i < n; i++) + count[S1[i]]++; + + for (int i = 0; i < n; i++) + count[S2[i]]--; + + for (int i = 0; i < 256; i++) + if (count[i]) + return -1; + + + int result = 0; + for (int i = n - 1, j = n - 1; i >= 0;) { + + while (i >= 0 && S1[i] != S2[j]) { + i--; + result++; + } + + if (i >= 0) { + i--; + j--; + } + } + return result; +} + + +int main() +{ + string S1 , S2; + cin>>S1>>S2; + cout << "Minimum number of operations required is " << minOps(S1, S2); + return 0; +} +