EQSTR - Biến đổi chuỗi

Tác giả: ll931110

Ngôn ngữ: C++

#include <algorithm>
#include <bitset>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <deque>
#include <fstream>
#include <iostream>
#include <iterator>
#include <map>
#include <queue>
#include <set>
#include <sstream>
#include <string>
#include <vector>
typedef long long ll;
using namespace std;

string getEq(string s,string t)
{
	string ret;
	for (int i = 0; i < s.size(); i++)
	{
		int x1 = s[i] - 'a',x2 = t[i] - 'a';
		
		int perform = 100,pos = -1;
		for (int i = 0; i < 26; i++)
		{
			int tmp = min(abs(x1 - i),26 - abs(x1 - i)) + min(abs(x2 - i),26 - abs(x2 - i));
			if (perform > tmp)
			{
				perform = tmp;  pos = i;
			};
		};
		char fin = pos + 'a';
		ret += fin;
	};
	return ret;
};

int main()
{
    string a;
    while (1)
    {
          cin >> a;
          if (a == "[END]") break;
          string s,t;
          cin >> s;  cin >> t;
          cout << getEq(s,t) << endl;
    };
};

Download