I was solving the problem[1800E2](https://codeforces.net/problemset/problem/1800/E2)↵
↵
I came across strange behaviour while comparing strings in c++. My first submission failed on testcase 2, I changed the code to compare string and instead of using "==" wrote my comparator myself and it passed. I fail to understand my mistake in the first implementation.↵
↵
submission 1: [Link](https://codeforces.net/contest/1800/submission/284398246)↵
↵
submission 2: [Link](https://codeforces.net/contest/1800/submission/284398393)↵
↵
Basically my code included↵
↵
~~~~~↵
string ta = a.substr(i, min(k, n) - i);↵
string tb = b.substr(i, min(k, n) - i);↵
↵
if(ta == tb) cout << "YES\n";↵
else cout << "NO\n";↵
~~~~~↵
↵
which failed the testcases↵
then i changed this part of code to↵
↵
~~~~~↵
for(int j = i; j < min(n, k); j++) {↵
if(a[j] != b[j]) valid = 0;↵
}↵
~~~~~↵
↵
This passed the testcase. I dont understand what was the problem in the first implementation, can anyone point something out that I am too dumb to understand. ↵
↵
Sorry for my poor english, Thanks in advance.↵
↵
I came across strange behaviour while comparing strings in c++. My first submission failed on testcase 2, I changed the code to compare string and instead of using "==" wrote my comparator myself and it passed. I fail to understand my mistake in the first implementation.↵
↵
submission 1: [Link](https://codeforces.net/contest/1800/submission/284398246)↵
↵
submission 2: [Link](https://codeforces.net/contest/1800/submission/284398393)↵
↵
Basically my code included↵
↵
~~~~~↵
string ta = a.substr(i, min(k, n) - i);↵
string tb = b.substr(i, min(k, n) - i);↵
↵
if(ta == tb) cout << "YES\n";↵
else cout << "NO\n";↵
~~~~~↵
↵
which failed the testcases↵
then i changed this part of code to↵
↵
~~~~~↵
for(int j = i; j < min(n, k); j++) {↵
if(a[j] != b[j]) valid = 0;↵
}↵
~~~~~↵
↵
This passed the testcase. I dont understand what was the problem in the first implementation, can anyone point something out that I am too dumb to understand. ↵
↵
Sorry for my poor english, Thanks in advance.↵