[C++] Kick Start 2021 Round H - Transform the String
7666 ワード
英語の答えも気まずいし、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=0,b=25(a,zが与えられた場合)と仮定すると,我々が望む値は1である.
a-bの値は負数-25です.そこで、すべてのアルファベット数26を加算(負数防止)し、残りの値1を求める.
同じです.
Reference
この問題について([C++] Kick Start 2021 Round H - Transform the String), 我々は、より多くの情報をここで見つけました https://velog.io/@lamknh/C-Kick-Start-Round-H-2021-Transform-the-Stringテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol