[C++] Kick Start 2021 Round H - Transform the String



英語の答えも気まずいし、kickstart自体のプラットフォームも気まずいし、たくさん回ったので、Attemptは9つあるし、ハハハ
#include <iostream>
#include <cmath> // abs
#include <algorithm> // min
using namespace std;

string S, F;
int T;

int main(int argc, char** argv){
  std::ios_base::sync_with_stdio(false);
	std::cin.tie(NULL);
	std::cout.tie(NULL);

  cin >> T; // 횟수

  for(int i=1; i<=T; i++){
    int num = 0;
    int minNum = 0;

    cin >> S >> F; // string 2개 입력받기

    for(int j=0; j<S.length(); j++){
      int a = S[j] - 'a'; // ASCII
      int tmp = 99999; // multiple 비교
      for(int k = 0; k<F.length(); k++){
        int b = F[k] - 'a'; // ASCII
        tmp = min(min((a - b + 26) % 26, (b - a + 26) % 26), tmp); // 정순, 역순
      }
      num += tmp;
    }

    cout << "Case #" << i <<": " << num << endl;
  }


  return 0;
}
Googleは文字列が大好きです.文字列の問題はもうしばらく解けていないので、6回も間違っています.甚だしきに至っては3日はタイムアウトです...一体どうして.
このように回転する数字を求めるときは、残りを使うのが簡単です.今はまだよく知られていませんが、私のものにします.
  • (a - b + 26) % 26
    a=0,b=25(a,zが与えられた場合)と仮定すると,我々が望む値は1である.
    a-bの値は負数-25です.そこで、すべてのアルファベット数26を加算(負数防止)し、残りの値1を求める.
  • (b - a + 26) % 26
    同じです.
  • 数学の思想とASCIIの価値を愛するグーグルのようだ.